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

mak*_*nai 5 ruby twitter eventmachine

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

dj2*_*dj2 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 
Run Code Online (Sandbox Code Playgroud)


the*_*Man 3

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

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

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