使用Rufus Scheduler 2.x在启动时运行cron

时间:2016-12-23 13:36:57

标签: rufus-scheduler

我正试图在启动时运行一个cron,然后从那时起每天午夜。

我受Dashing约束使用Rufus Scheduler 2.0.24,我不能在cron命令中使用'first_in'。 3.x我要复制的命令是这样的......

scheduler.cron '00 00 * * *', :first_in => '0' do

我想知道这有什么办法吗?

我发现this描述了一个类似的问题 - 但这只会在指定分配时间的第一个实例运行cron而不是立即运行。

1 个答案:

答案 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,上面显示的快捷方式没有细化,它将立即运行块。该块可能已经有一个实例正在运行,想象您已经为每天晚上的"午夜设置了时间表"而你恰好在午夜重新开始。因此,我认为上面的第一个解决方案是最好的,因为它触发了计划