我正在研究使用EventMachine驱动的twitter-stream rubygem来跟踪和捕获推文。我对整个编程事物都很陌生。如何判断我在事件循环中正在进行的处理是否会导致我落后?有没有简单的方法来检查?
答案 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()
,在那种情况下,获取队列的大小并打印出来。
如果数字没有变小,那么你就是平价。如果它上升,你就会落后。