ruby eventmachine timer interval太大的错误

时间:2012-03-07 04:08:40

标签: ruby timer eventmachine

我使用了ruby eventmachine库的Timer类,如下所示:

EM::Timer.new(interval) do
    # do something
end

如果我将间隔值设置得太大(大于最大整数值),例如'5183877.350508',则会引发错误:

  

整数5183883250太大而无法转换为`int'

这是eventmachine的定时器间隔或bug的限制吗? 如果我必须将定时器间隔设置得更大(例如几个月或几年),我该怎么办。

1 个答案:

答案 0 :(得分:0)

您应该做什么取决于您的使用案例。

虽然我认为依靠你的流程连续几个月不间断地运行是乐观的,但可能会发生这种情况。但是,除非这是一个监视计时器(例如,你的服务器因某种原因肯定会在4个月后死掉),我认为你最有可能想要一个调度程序。

我相信Rufus Scheduler与EventMachine合作得很好。