2013-08-09 12 views
18

私はdelayed_jobを使って実行するバックグラウンドタスクを持っています。IRBコンソールのdelayed_jobタスクで実行しているコードをどのようにデバッグできますか?

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

私は

rake jobs:work 

でバックグラウンドタスクを実行していますし、それがデバッガステートメントをトリガしません。

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

答えて

31
が標準レールコンソール

ruby script/console 

を開始し、ここで内部の従業員を開始

、これはデバッガ文を参照してくださいとトリガーされます。

worker = Delayed::Worker.new 
worker.start 
+3

:: Worker.new.start – Gaston

+0

バンドル幹部レールは "遅延:: Worker.new.startを" ランナー –

+0

これは驚くべきことです。今回は、遅れている仕事を使ってコンソール出力で暗闇の中にいました。ありがとうございました! – gregblass

12

私はコンソールとリモートデバッガとしてpryを使用します。 Pry website here,Pry rails gem here。あなたのコードでは、binding.pryステートメントを追加して、アプリケーションの実行を停止してコンソールを開きます。それはあなたのレールアプリと同様にdelayed_jobと同じように動作します。あなたがフォアグラウンドでdelayed_jobを実行していることを確認してください。それでも、ターミナルに接続されています。例えば、とdelayed_job開始:

遅延
rake jobs:work 
+5

実際には、キューを実行した後にブレークポイント(binding.pry命令)*を追加した場合は、まずレイクジョブでキューを停止して再起動する必要があります:ブレークポイントが考慮されるように作業する – Mapad

関連する問題