使用轮询系统或基于事件的计时器,什么是更快和“更好的做法”?
我目前正在与一位更资深的同事讨论如何实现一些关键任务逻辑。情况如下:
- 接收到给出执行时间的消息。
- 当达到该执行时间时,必须执行一些逻辑。
- 现在可以接收多个消息,给出不同的执行时间,并且每次都必须执行逻辑。
我认为实现逻辑的最佳方法是创建一个计时器,当消息在消息中时触发逻辑,但我的同事认为我最好轮询消息列表以查看是否已到执行时间。
他的论点是轮询系统更安全,因为它不太复杂,因此不太可能被程序员搞砸。我的论点是,通过以我的方式实现它,我们减少了计算负载,因此更有可能在我们真正希望它执行时执行逻辑。我应该如何实施它,为什么?
要求的信息
- 我的逻辑唯一一次被使用几乎肯定是在负载最高的时候。
- 要求并没有具体说明连接的可靠性,但与我交谈过的每个人都表示他们从未听说过消息被丢弃
- 调度基于绝对系统。因此,消息将具有指定何时执行算法的执行时间。由于有时间同步,我被指示假设所有机器的时间是统一的。
- 被执行的算法使用一些输入,这些输入最初是不稳定的,但很快就会稳定下来。通过推迟处理,我希望使用最稳定的可用信息。