問題タブ [celeryd]
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.
python - 返されたデータを使用したセロリタスク:間違って実行しているのか、それとも正しく実行しているのか?
セロリの使い方を学んでいます。これまでに学んだことから、(Flaskアプリケーションに)いくらか擬似コードの関数があります。
私はこれが正しくて最良であると100%確信しているわけではありませんが、今はうまくいきます。結果/返される行は、実行タスクがタスクを実行して待機する1つの「returned=run_task」である可能性があるようです。
私は方向のリファクタリングを考えていました-a)タスクを実行して結果を呼び出す関数にこれらの2行(結果/戻り値)をバンドルするか、b)「AsyncResult」をタスク自体に入れてその戻り値を取得します。
以前にこれをしたことがある人からのセロリの方法は何ですか?または、以前にセロリを微調整したことがある人からのフィードバックです。
celery - セロリで特定のタスクに時間制限を設定する
Celery には、通常の動作中に 10,000 秒間実行される可能性のあるタスクがあります。ただし、残りのすべてのタスクは 1 秒以内に完了する必要があります。実行時間の短いタスクの時間制限を変更せずに、意図的に長時間実行するタスクの時間制限を設定するにはどうすればよいですか?
python - celeryd プロセスの数は --concurrency 設定に依存しますか?
スーパーバイザーの背後でセロリを実行しており、次のように開始します
ただし、これにより、最大 3 層の深さで、最大 7 つの celeryd プロセスを含むプロセス グラフが作成されます (Supervisor が 1 つの celeryd を生成し、それが他のいくつかの celeryd を生成し、それが再びプロセスを生成します)。私たちのマシンには 2 つの CPU コアがあります。
これらのプロセスはすべてタスクで機能していますか? それらのいくつかは単なるワーカープールですか?--concurrency 設定は、実際に生成されたプロセスの数にどのように関連していますか?
python - セロリのプロセス数と通貨とプールサイズ
celery 3.0 では、最大同時実行数、実際に実行されているプロセスの数、およびプール サイズの関係は何ですか? max-currency( -c ) を 1 に設定して celery を実行すると、3 つの celeryd プロセスがポップアップ表示されます。何故かはわからない。
django - Upstart - Django と Celeryd
私は Ubuntu サーバーをセットアップしているので、私の Django プロジェクトは次のように upstart によって開始されます。
ご覧のとおり、最後にセロリも追加しました。しかし、それは開始されていません。私のタスクが完了していないため、開始されていないことは確かです。サーバーのターミナルで次のように起動すると:
manage.py celeryd -l info -B が開始され、タスクが実行されていることがわかります。
Django でどのように起動すればよいですか?
heroku - Heroku で実行中の celeryd の終了タイムアウト (エラー R12) をトラブルシューティングするにはどうすればよいですか?
Heroku dyno で celeryd を実行しています。シャットダウンして、以前に少なくとも 1 つのタスクを処理した (完了した) 場合、正しくシャットダウンせず、Heroku からエラー R12 (終了タイムアウト) が発生します。
Procfile
(Djangoとdjango-celeryを介して)私からcelerydを実行する方法は次のとおりです。
これをトリガーするために私がやっていることは次のとおりです。
そして、ここに私が得ているログ出力があります:
もともと、セロリ 2.5.5 でこれを経験しました。3.0.9 にアップグレードしましたが、まだ同じ問題があります。
私が知る限り、私のタスクはすべて完了しました。このエラーは、その celery dyno で単一のタスクを実行し、完了するのに十分な時間を与えてから dyno をシャットダウンすることで確実に再現できます。
他に何を確認すればよいかわかりません。これをトラブルシューティングする方法はありますか?タスクがすでに完了しているときに、セロリドが Heroku の SIGTERM に応答するのをブロックするものは何ですか?
python - 複数のデーモンを実行する Celeryd
私は Celery を RabbitMQ バックエンドで使用して、Fedora で非同期バックグラウンド タスクを実行しようとしていますが、イライラするほど信頼性が低いと感じています。最大の問題は、同じタスクを複数回実行することがあり、その理由を診断するのに苦労しています。
(db レコードを作成する) タスクを手動で 1 回起動してテストしたところ、2 つの同一のレコードが作成されていることがわかりました。Django シェルからコードを実行すると、レコードが 1 つしか作成されないため、問題は間違いなく Celery にあるようです。
それぞれ celeryd を実行している 3 つのサーバーがあり、最初に実行されている rabbitmq のみがあり、3 つのサーバーすべてが同じデータベースを共有しています。私の最初の経験は、セロリの設定に問題があり、各サーバーのセロリドが同じタスクを取得して実行することでした。ただし、セロリのドキュメントには、単一ホストと複数ホストのセットアップを区別するものは何もないように思われるため、各サーバーの settings.py で正しい BROKER_HOST/PORT/USER/PASSWORD/VHOST を指定したと仮定すると、「ただ複数のホストで動作します。これは正しいです?
私が持っていたもう1つの考えは、これを確認する方法がわかりませんが、どういうわけか複数のcelerydインスタンスを実行している可能性があるということでした. 2 台のサーバーで Fedora 13 が実行されており、実行すると次のようps aux | grep .*.py
になります。
これは、celeryd の 3 つの別々のインスタンスが実行されていることを示していますか? もしそうなら、これはエラーで、2匹殺すべきですか?
私の 3 番目のサーバーは、異なるサービス フレームワークを持つ Fedora 17 を実行しています。実行すると、次のようsystemctl status celeryd.service
になります。
これをどう解釈していいのかわからない。「アクティブ」は通常実行されていますが、「終了」は通常実行されていないことを意味します。実行するps aux | grep .*celery.*
と、次のようになります。
これは celeryd が実行されていないことを意味しますか、それとも何か他のものを探す必要がありますか?
編集:この回答に基づいて、3 つのプロセスがデフォルトである可能性があると思います。
python - Running celeryd_multi as a daemon
I'm using celery 3.0.11 and djcelery 3.0.11 with python 2.7 and django 1.3.4. I'm trying to run celeryd as a daemon and I've followed instructions from http://docs.celeryproject.org/en/latest/tutorials/daemonizing.html
When I run the workers using celeryd as described in the link with a python (non-django) configuration, the daemon comes up.
When I run the workers using python manage.py celery worker --loglevel=info
to test the workers, they come up fine and start to consume messages.
But when I run celeryd with a django configuration i.e. using manage.py celeryd_multi
, I just get a message that says
But I don't see any daemon running and my messages obviously don't get consumed. There is an empty log file (the one that's configured in the celeryd config file). I've tried this with a very basic django project as well and I get the same result.
I'm wondering if I'm missing any basic configuration piece. Since I don't get any errors and I don't have any logs, I'm stuck. Running it with sh-x doesn't show anything special either. Has anyone experienced this before or does anyone have any suggestions on what I can try?
Thanks,
django - 同じサーバーで複数の Django Celery Web サイトを実行する
apache2 仮想サーバーを使用して、同じサーバー上で複数の Django/apache/wsgi Web サイトを実行しています。セロリを使用したいのですが、複数の Web サイトで celeryd を起動すると、すべての Web サイトで最後に起動した celeryd インスタンスの構成 (ログ、DB など) が使用されます。
複数の Celeryd (Web サイトごとに 1 つ) またはそれらすべてに 1 つの Celeryd を使用する方法はありますか? 実行可能のようですが、方法がわかりません。