2

ターミナルで次のコマンドを実行してワーカーを起動します。

celery -A cel_test  worker --loglevel=INFO --concurrency=10 -n worker1.%h

次に、セロリが未登録のタスクを受け取り、トリガーしたことを示す長いループ エラー メッセージが表示されます。

KeyError: 'cel_test.grp_all_w_codes.mk_dct' #this is the name of the task

これに関する問題は、それcel_test.grp_all_w_codes.mk_dctが存在しないことです。cel_test.grp_all_w_codes実際、タスクは言うまでもなく、モジュールすらありませんmk_dct。数日前に一度ありましたが、その後削除しました。.pycファイルが浮かんでいるのではないかと思ったのですが、ありません。また、エラーをスローしているタスクへの参照がコード内に 1 つも見つかりません。コンピューターをシャットダウンし、rabbitmq サーバーを再起動して、何かへの参照がメモリに残っているのではないかと考えましたが、役に立ちませんでした。

ここで何が問題なのか、何が欠けているのか、誰にも分かりますか?

4

1 に答える 1

4

conf ファイルを知らなくても、これを引き起こす 2 つの理由が分かります。

celery -A cel_test worker --loglevel=INFO --concurrency=10 -n worker1.%h --purge

  • タスクはmk_dctセロリ ビートによって開始されます。その場合は、セロリ ビートを再起動し、カスタムのデータベース バックエンドがある場合はそのデータベース バックエンドをクリアしてみてください。

問題が解決しない場合は、セロリの conf を投稿して.pyc、プロジェクトのすべてをクリーンアップし、すべてを再起動したことを確認してください。

于 2014-07-22T16:43:41.403 に答える