問題タブ [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.
mongodb - Celery の使用時に開いている mongoDB 接続が多すぎる
Celery を使用してフィードをダウンロードし、画像のサイズを変更しています。フィードと画像のパスは、mongoengine を使用して MongoDB に保存されます。タスクを実行した後に現在の接続 (db.serverStatus()["connections"]) を確認すると、50 ~ 80 の「現在の」接続があり、celeryd をシャットダウンするまで開いたままになります。誰かがこの問題を経験したことがありますか、またはそれを解決するために私ができることを知っていますか?
ありがとう、ケンジック
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を調べてみましたが、すべてのメソッドが何も返しません。
ワーカーがハングする原因、または役立つ原因を診断する方法についてのアイデア。
django - max_retries を超えて失敗したタスクからの回復
返されるまでに最大 45 秒かかるため、Web サービスを非同期で使用しようとしています。残念ながら、この Web サービスも信頼性が低く、エラーをスローする可能性があります。django-celery
タスクが を超えて失敗するまで正常に動作するタスクをセットアップして実行していmax_retries
ます。
これが私がこれまでに持っているものです:
残念ながら、MaxRetriesExceededError
は によってスローされretry()
ていないため、このタスクの失敗を処理する方法がわかりません。Result
Django は既に HTML をクライアントに返しています。AJAX 経由でコンテンツをチェックしていますが、完全な失敗f
状態になることはありません。
問題は、Celery タスクが超過したときにデータベースを更新するにはどうすればよいかということmax_retries
です。
python - セロリ タスクとすべてのサブタスクが完了したことを検出する
任意の潜在的に大量のサブタスクを生成する親タスクがあります。親タスクとすべてのサブタスクの両方が完了したら、準備ができていることを示すフラグをデータベースに設定する必要があります。どうすればそれを行うのが最善でしょうか?
例えば:
関連するモデルにフラグを設定して、すべての準備が整ったことを示すことができるように、master_task とそれが生成するすべてのサブタスクが完了したことを検出する必要があります。
django - セロリデーモンの問題
セロリデーモンが非常に不安定であるという問題があります。ファブリック デプロイ スクリプトを使用して、変更をプッシュするたびにデーモンを再起動しますが、何らかの理由でこれが大きな問題を引き起こしています。
デプロイ スクリプトが実行されるたびに、セロリ プロセスは疑似デッド状態のままになります。(残念ながら) これらは引き続き rabbitmq からのタスクを消費しますが、実際には何もしません。紛らわしいことに、簡単な検査では、この状態ではすべてが「正常」であるように見えます。celeryctl ステータスは、1 つのノードがオンラインで、ps aux | grep celery は、2 つの実行中のプロセスを示しています。
ただし、/etc/init.d/celeryd stop を手動で実行しようとすると、次のエラーが発生します。
この状態で celeryd start を実行しようとすると、正しく動作しているように見えますが、実際には何もしません。この問題を解決する唯一の方法は、実行中のセロリ プロセスを手動で強制終了してから、再度開始することです。
ここで何が起こっているのですか?また、完全な確認はできていませんが、問題は数日後に発生すると考えられます (これは現在テスト サーバーであり、アクティビティはありません)。
python - django-celeryでTASK_SERIALIZERを構成する方法
TASK_SERIALIZER
django-celeryを使用していますが、ピクルスではなくJSONに設定したいと思います。
タスクデコレータをから変更することで、メソッドごとにこれを行うことができます
に
しかし、私はそれをグローバルにやりたいと思っています。設定
insettings.py
は機能しません。実行しようとしています
(ここで暗示されているように)結果は
djangoでセロリを実行するときにこの設定を構成する方法はありますか?
python - django で celeryd のパーミッションを変更する方法
celeryd
通常のユーザーを介して実行すると、許可が拒否されたというエラーが表示されることがわかりました
/opt/python2.7/bin/celeryd
ただし、rootユーザーで実行します
本文にはこう書かれている
celeryd の user1 に特権を割り当てるにはどうすればよいですか
python - LinuxのDjangoのceleryd構成ファイルとデーモンファイルと混同されています
celeryd
djnagoと統合しようとしていますが、設定ファイルでスタックしています
彼らが話しているファイルは3つあります。それらのファイルの内容を知る必要があります
私のCeleryd実行可能ファイルは/opt/python27/bin/celeryd
内容がわからないファイルが3つあります
celeryconfig.py
/etc/default/celeryd
/etc/init.d/celeryd
私はこのlinl をフォローしていますhttp://celeryq.org/docs/cookbook/daemonizing.html 構成がceleryconfig.pyにあるため、2と3の間で混乱しています。
しかし、/etc/init.d/celeryd
彼らにはこのコードがあります
django - Django アプリで動作しない django-celery のサンプル例
私はこのチュートリアルに従っています
http://celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html
私はセロリを始めました
python manage.py celeryd
それから私tasks.py
はmyapp
次に、これらをsettings.pyに入れます
次に、Pythonシェルを開始しました
python manage.py shell
次に、入力します
myapp インポート タスクから
うまくいきました
しかし、関数名を入力するとエラーが発生します
私が欠けているもの
django - Djangoのターミナルのバックグラウンドでセロリを起動する方法
私はセロリを
それは機能していますが、フォアグラウンドにあります。次に、コマンドをテストするには、別の端末を起動してそこで何かをする必要があります。
バックグラウンドでそれを開始する方法はありますか。私はこれを試しました
しかし、再びそれはフォアグラウンドに来ます