問題タブ [djcelery]

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 に答える
222 参照

celery - django celery キューのルーティングが機能しません

私には2つのタスクがあります。タスク「heavy_task」には 1 の同時実行数が必要で、「lite_task」には 4 の同時実行数が必要です。

settings.py ファイルでルートを定義します。

このように並行性を指定して 2 つのワーカーを実行してみます

最初にタスク Heavy_task を呼び出したときは正常に機能し、同時実行性は機能しますが、タスク lite_task を呼び出した後、キューの同時実行性が大きく変化します。

私はこれを試します:

そして、タスク Heavy_task を実行すると、ルーティングが機能せず、タスクが実行されません。

しかし、これを使用する場合:

すべて正常に動作しますが、一度に 1 つのタスクしか実行できず、同時実行数 1 で Heavy_task を実行し、同時実行数 3 で lite_task を実行できる必要があります。

何かアドバイス

0 投票する
0 に答える
865 参照

redis - セロリタスクエラー無限ループ

DJANGO アプリケーションでセロリを使用すると問題が発生します。タスクにエラーがあると、タスクはループに入り、タスクを終了する代わりに再度開始します。私のタスクはデータベースからストアド プロシージャを実行します。ストアド プロシージャでは、エラーが発生した場合に電子メールを送信し、ストアド プロシージャを終了します。

並行性が異なる 2 人のワーカーがいます

仕事:

タスクを消去しようとしても機能せず、タスクはメモリに保持されます。タスクをパージするには、次のコマンドを使用します。

DJANGO で Celery を使用するのは初めてで、何かを見逃しているのか、設定が間違っているのかわかりません。

そのループに入ったときにタスクを強制終了するには、django-admin サイトから、または celery purge コマンドを使用して停止できないため、データベースからタスクを強制終了する必要があります

エラーが発生したときにそのループに入らないようにするためのアドバイス

前もって感謝します

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

django - Celerybeat サービスが起動しない

セロリをサービスとして実行しようとしていますが、CELERYBEAT_OPTS パラメーターに問題があります。セロリサービスを問題なく開始でき、次のようなコマンドラインからセロリビートを問題なく開始できます。

しかし、次のように celerybeat サービスを開始すると:

始まらない。

/etc/default/celerybeat にある私の celerybeat 設定ファイルは次のとおりです。

最も奇妙な点は、構成ファイルに記載されているように、CELERYBEAT_OPTS 行をコメントアウトすると、service コマンドを使用してサービスを正常に開始できることです。そのため、構成ファイルで CELERYBEAT_OPTS="-S djcelery.schedulers.DatabaseScheduler" を指定すると、サービスが開始されません。ここで何が起こっているのか、またはどのようにトラブルシューティングできるのか、誰にも手がかりがありますか? ありがとうございました。

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

django - Django with Celery: 実行中のタスクからステータスを取得する

私は現在、セロリでDjangoをテストしています。

次のタスク追加を実行するために、定期的なタスクが crontab でセットアップされます。

モデル:

ここで、現在または最後のタスクの状態にアクセスできるようにしたいと考えています。Django シェルを使用すると、次のものを取得できます。

ただし、これから追加タスクにアクセスすることはできません。その状態にもアクセスできません。名前でタスクを呼び出しても機能しません。

Manager.objects.all()[0].app_status()['extractionapp.tasks.add'] トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、ファイル "/Users/antoinebrunel/seo/lib/ python2.7/site-packages/celery/app/registry.py"、26 行目、 Raise self.NotRegistered(key) NotRegistered: 'extractionapp.tasks.add'が欠落している

では、cron に割り当てられている現在のタスクの状態にアクセスするにはどうすればよいでしょうか? 管理者から Home › Djcelery › Tasks で確認できますが、コードからそれを取得するにはどうすればよいですか?

どうもありがとう!

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

python - Django/djcelery 1.8.2 AppRegistryNotReady: 翻訳インフラストラクチャを初期化できません

次のエラーが表示されます。

実際にはdjangoアプリではなく、セロリアプリであるプロジェクトがあります。したがって、プロジェクトwsgi.pyまたはアプリの開始時にmodels.py作成される一般的なファイルは作成していません。django-admin

私はここで指定されdjceleryたようなものを使用して定期的なタスクを作成できるようにするためにのみ使用したい実行時にcelery.schedulesを追加、変更、削除し、ここで定期的なタスクをCeleryに動的に追加/削除する方法(celerybeat)djcelery.schedules.DatabaseScheduler

ここに示されている問題の解決策 ( AppRegistryNotReady、uWSGI でデプロイするときの変換バグ) では、vassal.ini ファイルを変更する必要があります。私の実装には vassal.ini ファイルはありません。

私のプロジェクトについて簡単に説明します -

  • apps.py
  • タスク.py
  • runproj.py
  • セロリconfig.py

ワーカーを実行する前に、django-admin migrateコマンドを使用して必要なテーブルを作成しました。データベース内のテーブルを確認でき/home/test.dbます。

最初にワーカーを実行します -$python apps.py 次にデータベースにスケジュールを保存し、celerybeat デーモンによって繰り返し実行されます -$python runproj.py

0 投票する
0 に答える
385 参照

celery - --url_prefix はもうサポートされていないので、Flower は root でしか実行できませんか?

--url_prefix パラメータを使用しても Flower の実行時にエラーは発生しませんが、機能しなくなりました。また、最新のソース コードのコメントに、このパラメーターについて deprecated と書かれています。このパラメータに代わるものはありますか、それとも今後 Flowerは root でしか実行できませんか?

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

python - Django プロジェクトなしで djcelery.schedulers を使用するにはどうすればよいですか?

セロリの動的スケジューラー管理を使用したい。djcelery には、データベースをサポートする機能があることを知っています。しかし、現在は Django ではなく Flask を使用しています。djcelery.schedulers で Flask プロジェクトまたは実装を見つけることができませんでした。

djcelery を使用して、Django なしで動的スケジューラー管理システムを実装することは可能ですか?