問題タブ [celerybeat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - セロリ、ジャンゴ、PyMySQL
私は、 MySQLdbではなく PyMySQLを使用する MySQL データベースにフックされた django アプリケーションを持っています。詳細については、この質問に対する一般的な回答を参照してください。
ここで、 Celeryを使用して定期的なタスクを作成する必要があります。ここで定期的なタスクのドキュメントに従いました。
コマンドを実行するcelery -A proj beat
と、次のエラーが表示されます。
MySQLdb モジュールについて説明していますが、MySQLdb を使用しているとは思いません。この問題を解決する方法について誰かアドバイスをいただけますか?
rabbitmq - セロリは結果をrabbitmqに書き込むのに時間がかかりすぎます
最近、celery beat
定期的にタスクを実行し始めました。このタスクには約 2 分かかります。ビート間隔は 3 分です。バックエンドはrabbitmq.
ただし、タスクの合計経過時間は 20 分近くになります。とても奇妙に見えます!いくつかの作業の後、余分な時間がsending task result to rabbitmq
. すばらしい!なんで?
そして、セロリ ワーカーは、次のタスクを受け取るためにさらに 5 ~ 7 分かかります。この期間に労働者が何をしているかはわかりません。
誰でも説明できますか?
python - セロリの自動リロードが機能しない
Celery 3.1.16 ブローカー (RabbitMQ を実行) と、スーパーバイザーによってデーモン化された celeryd を持つ複数の Celery ワーカーを使用しています。問題はタスクの更新にあります。tasks.py ファイルを更新すると、セロリ ワーカーが古いコードを実行します。
セロリ起動コマンド:
django settings.py にタスク ファイルを含めます。
pyinotifyがインストールされ、動作します (そうだと思います)、セロリ ログの一部:
それで、私の質問:変更された場合、セロリの更新を取得して新しいタスクコードを適用する方法は?
celery - セロリビートは静かに失敗します
セロリ ビート ワーカーがタスクをセロリに送信しないという問題があります。Celery は、バックエンドとして HAProxy の背後にある RabbitMQ クラスターを備えた 3 台のサーバーで実行されます。
セロリ ビートは、毎日午前 9 時にタスクをスケジュールするために使用されます。ワーカーを起動すると、通常、最初のタスクは成功しますが、その後、次のタスクが rabbitmq に送信されることはないようです。セロリ ビート ログ ファイル (セロリ ビートは-l debug
オプションで実行されます) に、次のようなメッセージが表示されますScheduler: Sending due task my-task (tasks.myTask)
が、セロリ ワーカーがタスクを受信した兆候はありません。
また、rabbitmq_tracing プラグインを使用して rabbitmq にメッセージを記録しようとしましたが、タスクが rabbitmq に到達していないことだけが確認されました。何が起こっているのでしょうか?ありがとう!
celery - ランダムな回数の試行の後、タスクは再試行を停止します
件名が言うように、定義された "max_retries" カウントに達するまで再試行していたタスクは、ランダムな回数の後に再試行を停止することがあります :/. 数百回で再試行を停止することもあれば、ほんの数回で再試行を停止することもあります。
私が気づいたのは、「セロリビート」プロセスを再起動すると、数分後、何時間も「かなり」だったいくつかのタスクが、必要に応じて再試行を開始することです。
発生し始めた時期を正確に特定することはできませんが、Celery、RabbitMQ、または Django のアップグレード後である可能性があります。
なぜこれが起こっているのか誰にも分かりますか?
私は走っています:
セロリの設定:
タスクコードはスマートに見えます。このような:
ありがとう、ローリス
python - Celery - タスク/プロセスごとに 1 つのインスタンスのみ?
セロリのドキュメントのインスタンス化セクション ( http://celery.readthedocs.org/en/latest/userguide/tasks.html#custom-task-classes ) には、次のように記載されています。
タスクはリクエストごとにインスタンス化されるわけではありませんが、グローバル インスタンスとしてタスク レジストリに登録されます。
これは、init コンストラクターがプロセスごとに 1 回だけ呼び出されること、およびタスク クラスが意味的にアクタに近いことを意味します。
それにもかかわらず、次の例を実行すると、initメソッドが少なくとも 3 回呼び出されていることがわかります。セットアップの何が問題になっていますか? CELERYD_CONCURRENCY = 1
ワーカーごとにプロセスが 1 つだけであることを確認する必要がありますよね?
$ celery -A proj beat
セロリ.py:
タスク.py: