Подтвердить что ты не робот

Как я могу отлаживать код, запущенный в задаче delayed_job в консоли IRB?

У меня есть фоновая задача, которая работает с использованием delayed_job.

Я вижу, что он запускается из операторов ведения журнала. Кажется, у него нет правильного результата, по сравнению с его запуском на переднем плане, поэтому я хочу отлаживать его на консоли IRB.

Я запускаю фоновое задание с помощью

rake jobs:work

и это не вызывает оператор отладчика.

Как загрузить отладчик?

4b9b3361

Ответ 1

Запустите стандартную консоль рельсов.

ruby script/console

И запустите здесь рабочего, это увидит и выведет оператор отладчика.

worker = Delayed::Worker.new
worker.start

Ответ 2

Я использую pry как мою консоль и удаленный отладчик. Прикрепите здесь сайт, Здесь вы найдете жемчужину. В вашем коде вы добавляете инструкции binding.pry, чтобы ваше приложение перестало выполняться и открывать консоль. Он работает так же с delayed_job, как и с вашим рельсовым приложением. Убедитесь, что на переднем плане запущена функция delayed_job, поэтому она все еще привязана к терминалу. Например, запустите delayed_job с помощью:

rake jobs:work