EclipseデバッガーからCeleryタスクをデバッグする必要があります。私はEclipse、PyDev、Djangoを使用しています。
まず、Eclipseでプロジェクトを開き、タスク関数の先頭にブレークポイントを設定します。
次に、PyDevパッケージエクスプローラーからmanage.pyを右クリックし、[Debug As]-> [Python Run]を選択し、引数として[celeryd -l info]を指定して、EclipseからCeleryワーカーを起動します。これにより、MainThread、Mediator、およびEclipseデバッガーから見えるさらに3つのスレッドが起動します。
その後、PyDevビューに戻り、プロジェクトを右クリックして[Run As / PyDev:Django]を選択してメインアプリケーションを起動します。
私の問題は、タスクがmytask.delay()によって送信されると、ブレークポイントで停止しないことです。タスクコードにいくつかのトレースを入れて、ワーカースレッドの1つで実行されたことを確認します。
では、Eclipseデバッガーを、Celeryワーカースレッドで実行したときにタスクとともに配置されたブレークポイントで停止させるにはどうすればよいでしょうか。