EventMachine - 你怎么知道你是否落后?

时间:2011-02-02 06:37:53

标签: ruby twitter eventmachine

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

2 个答案:

答案 0 :(得分:7)

您可以使用定期计时器并打印已用时间来确定延迟。如果你使用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 

答案 1 :(得分:3)

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

你可以add_periodic_timer(),在那种情况下,获取队列的大小并打印出来。

如果数字没有变小,那么你就是平价。如果它上升,你就会落后。