如何在IRB控制台中调试在delayed_job任务中运行的代码?

时间:2013-08-09 01:43:52

标签: ruby-on-rails ruby delayed-job

我有一个使用delayed_job运行的后台任务。

我可以看到它确实从日志记录语句中运行。与在前台运行相比,它似乎没有正确的结果,所以我想在IRB控制台中调试它。

我正在使用

运行后台任务
rake jobs:work

并且它不会触发调试器语句。

如何加载调试器?

2 个答案:

答案 0 :(得分:39)

启动标准rails控制台

ruby script/console

在这里启动一个worker,这将看到并触发调试器语句。

worker = Delayed::Worker.new
worker.start

答案 1 :(得分:13)

我使用pry作为我的控制台和远程调试器。 Pry website herePry rails gem here。在您的代码中,添加binding.pry语句以使您的应用程序停止执行并打开控制台。它与delayed_job的工作方式与rails应用程序相同。确保您在前台运行delayed_job,因此它仍然连接到终端。例如,启动delayed_job:

rake jobs:work