web-dev-qa-db-ja.com

IRBコンソールのdelayed_jobタスクで実行されているコードをデバッグするにはどうすればよいですか?

Delayd_jobを使用して実行されるバックグラウンドタスクがあります。

ロギングステートメントから実行されていることがわかります。フォアグラウンドで実行した場合と比較して、正しい結果が得られていないようです。そのため、IRBコンソールでデバッグしたいと思います。

私はバックグラウンドタスクを実行しています

rake jobs:work

また、デバッガーステートメントはトリガーされません。

デバッガーをロードするにはどうすればよいですか?

25
s01ipsist

標準を開始Railsコンソール

Ruby script/console

そして、ここでワーカーを起動します。これにより、デバッガーステートメントが表示されてトリガーされます。

worker = Delayed::Worker.new
worker.start
42
s01ipsist

私はコンソールとリモートデバッガーとしてpryを使用しています。 PryウェブサイトはこちらPry Rails gem here 。コードにbinding.pryステートメントを追加して、アプリの実行を停止して開きますコンソール。delayed_jobでもRailsアプリと同じように機能します。ただし、フォアグラウンドでdelayed_jobを実行していることを確認してください。そうすれば、引き続きターミナルに接続されます。たとえば、delayed_jobを開始します。と:

rake jobs:work
13
pduey