2011-11-05 13 views
5

Sto usando delayed_job e sono in grado di eseguire i lavori usando i job rake: lavoro ma usando la versione demonizzata, non fa nulla anche se la vedo nella lista dei processi.il daemon Delayed_job non viene eseguito nello sviluppo?

sto usando:

  • rotaie (3.0.9)
  • delayed_job delayed_job (2.1.4)
  • demoni (1.0.10)

sto correndo utilizzando:

unix>RAILS_ENV=development script/delayed_job start 
+0

Qual è il risultato di 'RAILS_ENV = sviluppo di script/delayed_job status'? – Ernest

+0

Hai provato a eseguirlo senza demoni gemma? – Ernest

+0

Gemfile.lock afferma che i daemon sono una dipendenza richiesta ma io rimuoverò l'uso esplicito e provarlo. Il motivo per cui l'ho fatto è stato provare e forzare Daemonize ad usare una versione particolare (un sacco di suggerimenti StackOverflow ruotavano attorno all'uso di 1.0.10 per i demoni) poiché avevo daemon 1.1.4 sul sistema. I lavori – Aditya

risposta

3

Per rispondere alla tua domanda potremmo aver bisogno di altro formazione.

I lavori vengono aggiunti al database? Ci sono errori nei lavori?

Qual è il risultato di RAILS_ENV=development script/delayed_job status come ho già detto?

In secondo luogo, hai riscontrato i problemi più comuni nella pagina Wiki?

https://github.com/collectiveidea/delayed_job/wiki/Common-problems

+0

vengono aggiunti al database. Non vengono elaborati dal demone ma vengono elaborati dai processi di rake: lavoro. Devo controllare il messaggio di stato del lavoro in ritardo ma vedo che è in esecuzione (quando avvio due volte, si dice che un processo è già in esecuzione) + il pid in delayed_job.log corrisponde al pid del processo rubato delayed_job. – Aditya

+0

Lo stato restituisce 'delayed_job: running [pid 1473]' – Aditya

3

Potrebbe essere un problema durante il caricamento di un file personalizzato di classe di lavoro. Per provarlo, prova questo:

  • Immettere la console delle guide rails console --sandbox.
  • Assicurarsi di avere un lavoro nella tabella job = Delayed::Job.first.
  • Prova YAML.load(job.handler). Se si verifica un errore simile a questo: ArgumentError: undefined class/module MyCustomClass, è probabilmente un problema caricare il processo personalizzato
  • Sempre nella console delle guide, eseguire require 'My_Custom_Class. Quindi eseguire nuovamente il comando YAML.load(job.handler). Se questo restituisce l'oggetto appropriato è sicuramente un problema di caricamento di classe.

per risolvere il problema di creare il file config/initializers/custom.rb e in essa ha messo require 'My_Custom_Class'.

Si dovrebbe quindi essere in grado di eseguire rake jobs::workoff e ottenere qualcosa che assomiglia a questo:

[Worker(host:my.host pid:5085)] Starting job worker 
[Worker(host:my.host pid:5085)] MyCustomJob completed after 0.0774 
[Worker(host:my.host pid:5085)] 1 jobs processed at 9.1935 j/s, 0 failed ... 
[Worker(host:my.host pid:5085)] No more jobs available. Exiting 
Problemi correlati