¿Cómo le dices a un Delayed :: Job específico que se ejecute en la consola?


95

Por alguna razón, Delayed :: Job's ha decidido hacer cola pero no exceder nada a pesar de que lo he reiniciado varias veces, incluso lo maté y lo reinicié. No ejecutará ningún trabajo.

¿Puedo, en / console, especificar un trabajo específico y decirle que funcione?

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


Respuestas:


130

respondiendo cómo ejecutar un trabajo específico desde la consola:

Delayed::Job.find(x).invoke_job

pero debe recordar que no ejecutará ninguna otra cosa, como destruir el trabajo que se hizo, etc. simplemente ejecutando el trabajo / tarea.


4
Lea atentamente la nota del autor de la respuesta: "no ejecutará ninguna otra cosa como destruir el trabajo que se hizo" . Lo digo porque no lo leí y me estaba volviendo loco. Verifique la respuesta de @ DavidTuite
fguillen

163

También puedes hacerlo así:

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

¡Agradable! ¡Gracias por eso!
Viaje

26
esta es la mejor respuesta, elimina un trabajo una vez hecho. Gracias
m4risU

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

Excelente. De acuerdo con @ m4risU.
Chris Scott

Estoy de acuerdo con el comentario de @mrt, debe asegurarse de ejecutar el trabajo correcto
Jonny

0

En Heroku tuve un trabajo "atascado" y tuve que correr heroku restartpara que el trabajador / trabajo comenzara de nuevo.


Gracias por el comentario positivo ;-) Podría ser que la persona que pregunta, o las personas que vienen a esta pregunta, tengan el problema en Heroku.
rassom
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.