Rufus-scheduler gem中EveryJob和IntervalJob之间的区别是什么?

时间:2018-03-09 05:14:04

标签: ruby rufus-scheduler

我认为带选项overlap: false的EveryJob是IntervalJob。我是对的吗?

1 个答案:

答案 0 :(得分:0)

没有

来自文档:

  

然而"每一个"工作就像"每隔10分钟,做这个",间隔工作就像"那样做,然后等待10分钟,然后再做一次,依此类推"

关于overlap: false

  

默认情况下,由于作业是在自己的新线程中触发的,因此作业实例可能会重叠。例如,一项需要10分钟并且每7分钟安排一次的工作将会有重叠。

     

为防止重叠,可以设置:overlap =>假。如果其中一个实例已在运行,则不会触发此作业。

     

当调度程序正在审核作业以进行触发时,在:mutex选项之后会考虑:overlap选项。

对于IntervalJob,时间增量在最后一个触发结束和下一个触发起始点之间。 对于EveryJob,时间差值在触发起点之间。

如果EveryJoboverlap: false,则触发"会话"还在继续。

https://github.com/jmettraux/rufus-scheduler#rufus-scheduler