高效编码:推模式而不是拉

时间:2016-02-16 21:40:04

标签: java c# .net architecture bigdata

考虑x的值每秒都在变化。

我需要每秒监控x,并在它超过特定值时执行任务。

处理此问题的一种方法是使用IF语句并每秒比较一次值。

然而在我的情况下,这种情况每4-5小时只触发一次,但我们不知道它会在4-5小时内触发哪一秒。

问题

不是浪费大量的处理能力,而是使用IF块比较每秒。 有没有其他替代方案,我可以在大部分时间内保持闲置,并期望代码仅在发生这种情况时通知或触发事件? I.e闲置4-5小时,除了值达到所需数量的一秒钟。

2 个答案:

答案 0 :(得分:2)

看看observer design pattern,这应该符合您的需求

您的更改值服务(或其他任何内容)应提供注册侦听器的选项,然后引发事件以在值发生更改时通知所有侦听器

答案 1 :(得分:0)

如果你需要像设置一样处理客户端服务器,请查看https://en.wikipedia.org/wiki/Comet_(programming)