Come si dice a uno specifico Delayed :: Job di essere eseguito in console?


95

Per qualche ragione, Delayed :: Job's ha deciso di mettersi in coda ma di non eseguire nulla anche se l'ho riavviato più volte, persino ucciso -9 e riavviato. Non eseguirà alcun lavoro.

Posso, in / console, specificare un lavoro specifico e dirgli di funzionare?

Ex:.. Delayed::Job.find(x).run


Risposte:


130

rispondendo su come eseguire un lavoro specifico dalla console:

Delayed::Job.find(x).invoke_job

ma devi ricordare che non eseguirà altre cose come distruggere il lavoro che è stato fatto o così via. solo eseguendo il lavoro / attività.


4
Leggi attentamente la nota dell'autore della risposta: "non eseguirà altre cose come distruggere il lavoro che è stato fatto" . Lo dico perché non l'ho letto e stavo impazzendo. Controlla la risposta di @ DavidTuite
fguillen

163

Puoi anche farlo in questo modo:

Delayed::Worker.new.run( Delayed::Job.find(x) ) 

Bello! Grazie per quello!
Viaggio

26
questa è la risposta migliore, rimuove un lavoro dopo che è stato fatto. Grazie
m4risU

12
Ritardato :: Worker.new.run (Delayed :: Job.find (id))
mrt

Eccellente. D'accordo con @ m4risU.
Chris Scott

Sono d'accordo con il commento di @mrt, dovresti assicurarti di eseguire il lavoro corretto
Jonny

0

Su Heroku avevo un lavoro "bloccato" e dovevo solo correre heroku restartperché il lavoratore / lavoro ricominciasse.


Grazie per il commento positivo ;-) Potrebbe essere che la persona che faceva la domanda - o le persone che si avvicinavano a questa domanda - avesse il problema su Heroku.
rassom
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.