9
scheduler = Rufus::Scheduler.new :lockfile => ".rufus-scheduler.lock"

scheduler.every("60") do
...
end

環境: Ubuntu、rails 4、rufus、unicorn、nginx

Unicorn には複数のワーカーがあるため、上記の「every」タスクは 60 秒ごとに複数回実行されます。

これに対する答え: rufus scheduler running times each time によると、:lockfile オプションを追加したところ、うまくいきました!

ただし、ログから、「すべての」タスクがまだ呼び出されようとしているようで、多くのエラー メッセージが表示されます。

E, [2014-05-09T01:59:47.496840 #2747] ERROR -- : cannot schedule, scheduler is down or shutting down (Rufus::Scheduler::NotRunningError)
/home/sohmobile/shared/bundle/ruby/2.1.0/gems/rufus-scheduler-3.0.7/lib/rufus/scheduler.rb:605:in `do_schedule'
/home/sohmobile/shared/bundle/ruby/2.1.0/gems/rufus-scheduler-3.0.7/lib/rufus/scheduler.rb:209:in `every'
/home/sohmobile/releases/20140509014407/config/initializers/task_scheduler.rb:3:in `<top (required)>'

この問題を解決するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1