nbstoner
V2EX  ›  算法

[ Java 向] 程序算法,连续信号处理场景。(连续性和概率性)

  •  
  •   nbstoner · Aug 10, 2017 · 4128 views
    This topic created in 3229 days ago, the information mentioned may be changed or developed.

    基本场景:从消息队列中拿到消息。假设消息只有 0 和 1。 需求场景:设定两组阀值参数。1:某个信号连续出现 N 次后达到预警阀值。2:某个信号在连续 m 次中至少出现 n 次即达到预警阀值。

    希望得到的建议: 以 JAVA 环境为基础,给出个点算法上简单的实现或者参考方案。

    3 replies    2017-08-10 16:38:15 +08:00
    whatot
        1
    whatot  
       Aug 10, 2017
    第一个比较简单,加两个变量,一个记录上一次信号,一个记录上一次信号的累计次数,按情况判定就行了。

    第二个就是限流的通用方法,比如用令牌桶算法,自己设计如何产生令牌,一旦消费端获取令牌失败则达到预警。
    whatot
        2
    whatot  
       Aug 10, 2017   ❤️ 1
    处理第二个问题的简单方法,可以使用一个长度为 m 的 queue,每次新信号,
    如果 queue 没满,只增加信号计数;
    如果 queue 已满,出栈最旧的一个,减对应计数,然后入栈,增对应计数;
    入栈完毕,检查最新计数是否达到阈值 n。
    18665572404
        3
    18665572404  
       Aug 10, 2017
    使用 CountDownLatch ?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   975 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:01 · PVG 03:01 · LAX 12:01 · JFK 15:01
    ♥ Do have faith in what you're doing.