有一种方法EventMachine.next_tick
(http://eventmachine.rubyforge.org/EventMachine.html#next_tick-class_method)。嘀嗒间隔有多大?怎么控制呢?可以设置滴答间隔吗?
答案 0 :(得分:3)
Eventmachine Ticks基本上与reactor事件循环的每次运行匹配。使用next_tick
将在下一次可用的reactor循环运行时运行该块。这意味着下一次实际运行,或者更可能的是,在不久的将来的某个时刻,基于是否还有其他事件等待反应堆回路接收。例如,首先运行使用add_timer
或add_periodic_timer
的队列的任何代码块,然后处理其他事件,如传入的网络流量。
A" tick"在Eventmachine中,它实际上并不是时间的衡量标准,它是反应堆循环执行次数的计数器。如果你的反应器循环中有阻塞操作,那么每个滴答都需要更长的时间来处理。
如果您需要了解应该何时运行,请使用add_timer
或add_periodic_timer instead of
next_tick`。但由于无法确保反应器回路在定时器应该触发的确切时刻可用,因此几乎不可能使用Eventmachine来获得准确的定时器间隔。