Cis*_*tin 5 ruby ruby-on-rails sidekiq clockwork
我有一个简单的 sidekiq 作业,我已将其设置为使用时钟每 5 分钟运行一次。我担心的是,如果作业花费的时间超过 5 分钟,它会再次运行,如果它与原始作业同时运行,这可能会导致一些问题。
有没有办法锁定发条,使其仅在前一次运行完成后才运行?
Sag*_*oss -1
一种选择是在作业开始时创建一个包含进程 PID 的文件,并在作业结束时将其删除,如果 PID 文件已存在,则在开始时中止作业。
尽管我的应用程序的这个特定部分没有使用 sidekiq,但其想法是相同的。我的应用程序是这样做的:https://github.com/WikiEducationFoundation/WikiEduDashboard/blob/master/lib/data_cycle/constant_update.rb