我正在研究使用 EventMachine 驱动的 twitter-stream rubygem 来跟踪和捕获推文。我对整个事件编程的事情有点陌生。如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法?
问问题
469 次
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 回答