0

有一种方法EventMachine.next_tickhttp://eventmachine.rubyforge.org/EventMachine.html#next_tick-class_method)。滴答间隔有多大?如何控制它?可以设置滴答间隔吗?

4

1 回答 1

3

Eventmachine Ticks 基本上与 reactor 事件循环的每次运行相匹配。使用next_tick将在反应器循环的下一次可用运行中运行该块。这是否意味着下一次实际运行,或者更有可能在不久的将来的某个时间点,取决于是否有其他事件等待反应堆循环接收。例如,任何排队使用add_timeradd_periodic_timer首先运行的代码块,然后处理传入网络流量等其他事件。

Eventmachine 中的“滴答”并不是真正的时间测量,它是反应器循环执行次数的计数器。如果您的反应器循环中有阻塞操作,那么每个滴答将需要更长的时间来处理。

如果您需要知道大约何时应该运行,请使用add_timeradd_periodic_timer instead ofnext_tick`。但是由于无法保证反应器循环在计时器应该触发的确切时刻可用,因此几乎不可能使用 Eventmachine 来获得准确的计时器间隔。

于 2013-08-30T12:19:44.440 回答