私はDjangoで定期的なセロリタスクを使用しています。セロリビートキューに古いタスクが含まれています
@periodic_task(run_every=timedelta(minutes=2))
def stuff():
...
しかし今、このタスクは、私のアプリ/ tasks.pyファイルから削除されました:私は私のアプリ/ tasks.pyファイルに次のタスクを持っていました。しかし、私は私のセロリのログにこのタスクへの呼び出しを見ておいてください。
[2013-05-21 07:08:37,963: ERROR/MainProcess] Received unregistered task of type u'app.tasks.stuff'.
私が使用セロリビートスケジューラはそのキューを更新していないようです。これは私のプロジェクト/ settings.pyファイルでスケジューラが定義されている方法です:
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
セロリの作業を再開することは役に立ちません。参考までに、私はRedisブローカーを使用しています。
セロリビートキューをクリアまたは更新して、古いタスクをセルラーワーカーに送信しないようにするにはどうすればよいですか?
スケジュールのデータベースエントリも削除する必要があると思います。あなたはdjangoの管理者からそうすることができます。 – Ngenator
こんにちはレジス、この問題を解決できましたか?私は同じ問題があります。 @Ngenator - あなたの解決策は –
です。問題は赤字サーバーにある可能性があります。セロリのタスクは、Redisサーバーにプッシュされたpickledオブジェクトなので、redisは古いタスクを保持し続けます。 Redisサーバーを再起動するか、タスクのパージ機能を呼び出します。 –