Rufus планировщик работает несколько раз с единорогом, исправлено с помощью:lockfile, но как устранить ошибку msg?

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

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

Окружение: Ubuntu, rails 4, rufus, единорог, nginx

Unicorn имеет несколько рабочих, поэтому вышеупомянутая "каждая" задача будет выполняться несколько раз каждые 60 секунд.

В соответствии с ответом на этот вопрос: планировщик rufus запускается дважды каждый раз, я добавил: параметр 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)>'

Как я могу решить эту проблему?

Заранее спасибо.

1 ответ

Решение

Это может решить вашу проблему:

require 'rufus-scheduler'

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

unless scheduler.down?

  scheduler.every("60") do
    # ...
  end
end
Другие вопросы по тегам