job delayed_job_active_record delayed ruby-on-rails ruby delayed-job

ruby on rails - delayed_job_active_record - ¿Cómo puedo depurar el código que se ejecuta en una tarea delayed_job en la consola IRB?



delayed job (2)

Tengo una tarea en segundo plano que se ejecuta con delayed_job.

Puedo ver que se ejecuta desde las declaraciones de registro. No parece tener el resultado correcto, en comparación con ejecutarlo en primer plano, así que quiero depurarlo en la consola IRB.

Estoy ejecutando la tarea de fondo con

rake jobs:work

y no desencadena la declaración del depurador.

¿Cómo puedo cargar el depurador?


Poner en marcha una consola de raíles estándar.

ruby script/console

Y comience a trabajar aquí, esto verá y activará la declaración del depurador.

worker = Delayed::Worker.new worker.start


Yo uso la palanca como mi consola y depurador remoto. Pry sitio web aquí , Pry rieles gema aquí . En su código, agregue sentencias binding.pry para que su aplicación deje de ejecutar y abra la consola. Funciona igual con delayed_job que con su aplicación de Rails. Sin embargo, asegúrese de que está ejecutando delayed_job en primer plano, por lo que todavía está conectado al terminal. Por ejemplo, iniciar delayed_job con:

rake jobs:work