5

我正在研究使用 EventMachine 驱动的 twitter-stream ruby​​gem 来跟踪和捕获推文。我对整个事件编程的事情有点陌生。如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法?

4

2 回答 2

8

您可以通过使用定期计时器并打印出经过的时间来确定延迟。如果你使用 1 秒的计时器,你应该有大约 1 秒的时间,如果它更大,你就会知道你在减慢反应堆的速度。

@last = Time.now.to_f
EM.add_periodic_timer(1) do
  puts "LATENCY: #{Time.now.to_f - @last}"
  @last = Time.now.to_f
end 
于 2011-02-06T03:42:07.660 回答
3

EventMachine 有一个EventMachine::Queue.size方法可以让您查看当前队列并了解它有多大。

add_periodic_timer()在这种情况下,您可以获取队列的大小并打印它。

如果这个数字没有变小,你就处于平价状态。如果它上升,你就落后了。

于 2011-02-02T18:44:47.510 回答