2014-05-09 4 views
8
scheduler = Rufus::Scheduler.new :lockfile => ".rufus-scheduler.lock" 

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

Ambiente: Ubuntu, rotaie 4, rufus, unicorno, nginxScheduler Rufus in esecuzione più volte con unicorno, risolto con: lockfile, ma come eliminare il messaggio di errore?

Unicorn ha più i lavoratori, in modo che il 'ogni' operazione di cui sopra verrà eseguita più volte ogni 60 secondi.

Secondo la risposta per questo: rufus scheduler running twice each time , ho aggiunto: opzione lockfile e funziona!

Tuttavia, dal registro, sembra che la 'ogni' compito cerca ancora di essere chiamato, risulta in un sacco di messaggi di errore:

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)>' 

Come posso risolvere questo problema?

Grazie in anticipo.

risposta

15

Questo potrebbe risolvere il problema:

require 'rufus-scheduler' 

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

unless scheduler.down? 

    scheduler.every("60") do 
    # ... 
    end 
end 
+0

Grazie mille, signore! Esso funziona magicamente. – user3618929

+0

In questo caso, accetta la mia risposta e vota. Grazie in anticipo :-) – jmettraux

Problemi correlati