私の本業では、DjangoアプリでCeleryを使用してキューイングしており、Redisをバックエンドとして使用しています。デプロイのたびに、ジョブが「ポフ!」と消えてしまいます。そして、クライアントの長時間実行ジョブの合間に、更新/デプロイをスロットに入れる必要があります。
私は、フォーマルなステートマシンを使用したDBベースのキューでそれらすべてを置き換えており、Celeryは「今すぐタスクを実行する」フェーズにのみ使用しています。これにより、永続的な状態が得られ、キューとしてCeleryを使用せずに直接ジョブを実行する機能が得られ、状態はRedisで一時的なものではなくなります。
これは私が使用している状態図です。
よろしく、
Cameron
martin
(Martin Brennan)
26
キャメロン、ありがとう。ログが再び有効になったので、この件に集中します。今のところ、エラーや失敗したバックグラウンドジョブは見当たらず、コードロジックからもこれらのメールを意図的にスキップするようなものは見当たりません。その件については、OP(元の投稿者)にメールが送信された人が誰もいないというのは興味深いですね。まるでジョブがエンキュー(キューに追加)されなかったかのようです。引き続き調査し、分かり次第連絡します。
「いいね!」 1
martin
(Martin Brennan)
30
@cameron-simpson furtherに調査したところ、実際にはレビューキューシステムに関する問題であることがわかりました。例えば、Mental block, simple question - Python Help - Discussions on Python.org は Akismet によって「スパム」として検出されたため、管理者の承認が必要な投稿となりました。管理者が投稿を承認すると、メーリングリストモードのメールはエンキューされません。このバグを修正すれば、問題は解消されるはずです。数週間以内には対応できる見込みです。
「いいね!」 3
martin
(Martin Brennan)
32
本日 @cameron-simpson、この修正をマージしました。Pythonも本日デプロイします。その後、この問題がさらに発生した場合はお知らせいただけると幸いです
ただし、これで問題が解決するはずです。
「いいね!」 2
ありがとうございます。引き続き注意を払います。- Cameron Simpson cs@cskk.id.au
「いいね!」 2