問題タブ [django-celery]

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.

0 投票する
1 に答える
1122 参照

mongodb - Celery の使用時に開いている mongoDB 接続が多すぎる

Celery を使用してフィードをダウンロードし、画像のサイズを変更しています。フィードと画像のパスは、mongoengine を使用して MongoDB に保存されます。タスクを実行した後に現在の接続 (db.serverStatus()["connections"]) を確認すると、50 ~ 80 の「現在の」接続があり、celeryd をシャットダウンするまで開いたままになります。誰かがこの問題を経験したことがありますか、またはそれを解決するために私ができることを知っていますか?

ありがとう、ケンジック

0 投票する
1 に答える
3712 参照

celery - ハングする Celery ワーカーを診断する方法

Django プロジェクトで Celery を使い始めています。ローカル開発の目的で、これらの指示http://ask.github.com/celery/tutorials/otherqueues.html#django-databaseに従って、djcelery と djkombu (データベース トランスポート) でセットアップしましたが、rabbitmqを使用する予定です本番サーバー。

私はそれが機能することを発見しましたが、1 つ以上のワーカーがランダムにハングします。ワーカーはさまざまなタスクでハングアップするため、特定のタスクが無限ループに入ることはありません。セロリをシャットダウンしようとすると、ログには通常、1 つを除いてすべてのワーカーが終了していることがわかります。ワーカーがハングする前と後の両方で、celeryctl を使用してワーカーに関する情報を取得しようとしましたが、celeryctl は常に「エラー: 時間制限内にノードが応答しませんでした。」というメッセージで失敗します。また、ワーカーhttp://docs.celeryproject.org/en/latest/userguide/workers.html#inspecting-workersを調べてみましたが、すべてのメソッドが何も返しません。

ワーカーがハングする原因、または役立つ原因を診断する方法についてのアイデア。

0 投票する
4 に答える
14256 参照

django - max_retries を超えて失敗したタスクからの回復

返されるまでに最大 45 秒かかるため、Web サービスを非同期で使用しようとしています。残念ながら、この Web サービスも信頼性が低く、エラーをスローする可能性があります。django-celeryタスクが を超えて失敗するまで正常に動作するタスクをセットアップして実行していmax_retriesます。

これが私がこれまでに持っているものです:

残念ながら、MaxRetriesExceededErrorは によってスローされretry()ていないため、このタスクの失敗を処理する方法がわかりません。ResultDjango は既に HTML をクライアントに返しています。AJAX 経由でコンテンツをチェックしていますが、完全な失敗f状態になることはありません。

問題は、Celery タスクが超過したときにデータベースを更新するにはどうすればよいかということmax_retriesです。

0 投票する
2 に答える
3626 参照

python - セロリ タスクとすべてのサブタスクが完了したことを検出する

任意の潜在的に大量のサブタスクを生成する親タスクがあります。親タスクとすべてのサブタスクの両方が完了したら、準備ができていることを示すフラグをデータベースに設定する必要があります。どうすればそれを行うのが最善でしょうか?

例えば:

関連するモデルにフラグを設定して、すべての準備が整ったことを示すことができるように、master_task とそれが生成するすべてのサブタスクが完了したことを検出する必要があります。

0 投票する
1 に答える
2925 参照

django - セロリデーモンの問題

セロリデーモンが非常に不安定であるという問題があります。ファブリック デプロイ スクリプトを使用して、変更をプッシュするたびにデーモンを再起動しますが、何らかの理由でこれが大きな問題を引き起こしています。

デプロイ スクリプトが実行されるたびに、セロリ プロセスは疑似デッド状態のままになります。(残念ながら) これらは引き続き rabbitmq からのタスクを消費しますが、実際には何もしません。紛らわしいことに、簡単な検査では、この状態ではすべてが「正常」であるように見えます。celeryctl ステータスは、1 つのノードがオンラインで、ps aux | grep celery は、2 つの実行中のプロセスを示しています。

ただし、/etc/init.d/celeryd stop を手動で実行しようとすると、次のエラーが発生します。

この状態で celeryd start を実行しようとすると、正しく動作しているように見えますが、実際には何もしません。この問題を解決する唯一の方法は、実行中のセロリ プロセスを手動で強制終了してから、再度開始することです。

ここで何が起こっているのですか?また、完全な確認はできていませんが、問題は数日後に発生すると考えられます (これは現在テスト サーバーであり、アクティビティはありません)。

0 投票する
3 に答える
7990 参照

python - django-celeryでTASK_SERIALIZERを構成する方法

TASK_SERIALIZERdjango-celeryを使用していますが、ピクルスではなくJSONに設定したいと思います。

タスクデコレータをから変更することで、メソッドごとにこれを行うことができます

しかし、私はそれをグローバルにやりたいと思っています。設定

insettings.pyは機能しません。実行しようとしています

(ここで暗示されているように)結果は

djangoでセロリを実行するときにこの設定を構成する方法はありますか?

0 投票する
1 に答える
688 参照

python - django で celeryd のパーミッションを変更する方法

celeryd通常のユーザーを介して実行すると、許可が拒否されたというエラーが表示されることがわかりました

/opt/python2.7/bin/celeryd

ただし、rootユーザーで実行します

本文にはこう書かれている

celeryd の user1 に特権を割り当てるにはどうすればよいですか

0 投票する
1 に答える
1346 参照

python - LinuxのDjangoのceleryd構成ファイルとデーモンファイルと混同されています

celeryddjnagoと統合しようとしていますが、設定ファイルでスタックしています

彼らが話しているファイルは3つあります。それらのファイルの内容を知る必要があります

私のCeleryd実行可能ファイルは/opt/python27/bin/celeryd

内容がわからないファイルが3つあります

  1. celeryconfig.py
  2. /etc/default/celeryd
  3. /etc/init.d/celeryd

私はこのlinl をフォローしていますhttp://celeryq.org/docs/cookbook/daemonizing.html 構成がceleryconfig.pyにあるため、2と3の間で混乱しています。

しかし、/etc/init.d/celeryd彼らにはこのコードがあります

0 投票する
1 に答える
3353 参照

django - Django アプリで動作しない django-celery のサンプル例

私はこのチュートリアルに従っています

http://celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html

私はセロリを始めました

python manage.py celeryd

それから私tasks.pymyapp

次に、これらをsettings.pyに入れます

次に、Pythonシェルを開始しました

python manage.py shell

次に、入力します

myapp インポート タスクから

うまくいきました

しかし、関数名を入力するとエラーが発生します

私が欠けているもの

0 投票する
3 に答える
6676 参照

django - Djangoのターミナルのバックグラウンドでセロリを起動する方法

私はセロリを

それは機能していますが、フォアグラウンドにあります。次に、コマンドをテストするには、別の端末を起動してそこで何かをする必要があります。

バックグラウンドでそれを開始する方法はありますか。私はこれを試しました

しかし、再びそれはフォアグラウンドに来ます