我正试图在启动时运行一个cron,然后从那时起每天午夜。
我受Dashing约束使用Rufus Scheduler 2.0.24,我不能在cron命令中使用'first_in'。 3.x我要复制的命令是这样的......
scheduler.cron '00 00 * * *', :first_in => '0' do
我想知道这有什么办法吗?
我发现this描述了一个类似的问题 - 但这只会在指定分配时间的第一个实例运行cron而不是立即运行。
答案 0 :(得分:1)
这样做的一个简单方法是:
job =
proc do
puts "hello"
end
job.call
# run it right now
scheduler.cron('00 00 * * *', &job)
但也许这个更具可读性:
job =
scheduler.cron '00 00 * * *' do
puts 'hello'
end
job.block.call
# run it right now
scheduler.join
感谢发布一个新问题,它让一切都清楚了。 Rufus Scheduler :first_in option unknown with cron的问题有点不同。
我知道这是关于rufus-scheduler 2.0.24的,但是我想指出3.3.x中的一个新功能:https://github.com/jmettraux/rufus-scheduler/issues/214你可以在job.trigger_off_schedule
执行{{1}}并调用它如果重叠,互斥和其他工作选项允许,那么现在就可以完成工作。
回到2.0.24,上面显示的快捷方式没有细化,它将立即运行块。该块可能已经有一个实例正在运行,想象您已经为每天晚上的"午夜设置了时间表"而你恰好在午夜重新开始。因此,我认为上面的第一个解决方案是最好的,因为它触发了计划。