2017-08-28 7 views
1

私はDjango + Celery + RabbitMQを実行しています。いくつかのタスク名を変更した後、私はDjango Celery BeatのPeriodicタスクテーブルからこのキーを使ってタスクを削除し、Celeryワーカーを再起動した後でも、 "未登録タスク" KeyErrorsを取得し始めました。 running with the --purge option以降であってもpersistです。Celery/RabbitMQキューに残っている古いタスクを取り除くにはどうしたらいいですか?

どうすれば削除できますか?

答えて

0

これらのタスクの最後をフラッシュするには、古いメソッドヘッダーを使用してロジックを再実装することはできません。あなたがメソッドoriginalを削除し、現在は次のようにするだけoriginal方法を再作成エラー

[ERROR/MainProcess] Received unregistered task of type u'myapp.tasks.original' 

を取得している場合たとえば

、:tasks.py

@shared_task 
def original(): 
    # keep legacy task header so that it is flushed out of queue 
    # FIXME: this will be removed in the next release 
    pass 

各バージョンでこのバージョンを実行すると、残りのタスクはすべて処理されますg)。 定期タスクテーブルからそれらを削除したこと、およびそれらのテーブルがもう呼び出されていないことを確認してください。その後、次の展開の前にメソッドを削除することができ、問題は繰り返されません。

これはまだ解決策ですが、review and delete the tasks individuallyにできることが望ましいです。

関連する問題