問題タブ [celery-task]

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 投票する
2 に答える
7334 参照

django - 各セロリ タスクのタスク ID をデータベースに格納する

でセロリを使用していMySQLます。タスク ID を単純な整数としてデータベースまたは celery の変数に保存したいと考えていますtask。どうやってやるの?

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

python - Python Celery socket.error: [Errno 61] 接続が拒否されました

Celery 3.0 を使用しており、以下のような構成ファイルがあります。

セロリconfig.py

タスク.py

と function.py

次のコマンドでアプリケーションを実行します

今まですべてがうまくいっています。私はredisとセロリを実行して答えを得ています。

しかし、parallizer という別のファイルから function コマンドを実行すると、

ソケットエラーが発生し、

私のファイルは以下のようなものです、

何か案は ?

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

django - Django 1.5、django-celery 3.0.11、およびmongodbを使用してタスクをキューに入れることができません

みんな。Djangoシェルから次のコードを実行する と、使用Django==1.5に問題があり ますdjango-celery==3.0.11error: [Errno 61] Connection refused

設定.py

data_warehouse.tasks (チュートリアルからコピー)

python manage.py celery worker -l info を実行すると取得します

このコードでpythonシェルを使用してタスクを実行しようとしたとき

この予想されるエラーが発生します。

この問題は、Celery インスタンスが適切なブローカー URL を呼び出さないことに起因する可能性がありますが、まだわかりません。これについて何か考えはありますか?

解決しました!! 追加するだけ

settings.py へ

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

celery - セロリタスクにアクセスすると、グループ内でチェーンが発生します

セロリを使用した私のワークフローは次のとおりです。

を開始するgroup3と、すべてがうまくいきます。すべてのタスクは、必要な「依存関係」で実行されます。タスクは何らかの操作を実行し、ブール値を返します。すべてのタスクの結果を確認したいと思います。残念ながら、すべての結果を取得することはできません:

戻り値:

タプルは次のようなものです。

そして、それを連鎖的な結果のように処理することはできません。id で asyncresult を作成すると8a8b7c2c-db44-4096-ba29-93ad2cd63409、グループ内のサブタスクの結果にのみアクセスできます (つまり、結果を取得task1task2ますが、結果を取得する方法はありませんtask3)。

この方法は非常に複雑ですが、単純なグループ/チェーンの結果を取得するためのすべての方法を見つけたセロリのドキュメントに特定のものが見つかりません。

私はワークフローを本当に知っているという事実を考えると、すべての結果にアクセスするための最良の方法は何ですか?

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

python - Celery全体でPythonメソッドのシグネチャを変更するのが難しい

これはおそらくキャプテンの明らかなスタイルの質問ですが、何かが足りないような気がします。

Celeryタスクを作成するPythonWSGIアプリを継承しました。これは次のようになります。

メソッドは次のprocess_requestようになります。

上記のすべてが機能します。process_requestにタイムスタンプを追加しようとしたので、呼び出しは次のようになります。

そして、process_requestメソッドを次のように変更しました。

それはうまくいきませんでした。リクエストは処理されていませんでした。celerydログファイルを確認したところ、次のことがわかりました。

何が間違っているのかわかりません。誰かアイデアはありますか?

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

celery - 特定の時点で実行されたセロリ タスクの数

その場で非同期に一連のセロリタスクを作成しようとしています。非同期で開始する 1000 のタスクがあり、タスクを実行するために celeryd プロセスを 1 つしか実行していないとします。これらのタスクを処理するためにセロリによっていくつのスレッドが作成されるでしょうか?

タスクキューを処理するためにセロリが自動的に開始する複数のスレッドがある場合、セロリが特定の時点で 100 スレッドのみを実行するように制限するにはどうすればよいですか。

ありがとう。

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

python - Celery ブロードキャストですべてのワーカーから結果を返すようにする

Celery Broadcast タスクのすべてのワーカーからすべての結果を取得する方法はありますか? すべてのワーカーですべてがうまくいったかどうかを監視したいと思います。タスクが送信されたワーカーのリストも高く評価されます。

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

celery - Unregistered task in Celery

tasks.py:

after starting the worker,i tried http dispatcher:

and got error like, [2013-04-03 06:39:54,791: ERROR/MainProcess] Received unregistered task of type u'celery.task.http.HttpDispatchTask'. The message has been ignored and discarded.

Did you remember to import the module containing this task? Or maybe you are using relative imports? More: http://docs.celeryq.org/en/latest/userguide/tasks.html#names

The full contents of the message body was: {u'utc': True, u'chord': None, u'args': [u'http://localhost/add', u'GET'], u'retries': 0, u'expires': None, u'task': u'celery.task.http.HttpDispatchTask', u'callbacks': None, u'errbacks': None, u'taskset': None, u'kwargs': {u'y': 10, u'x': 10}, u'eta': None, u'id': u'29f83cc9-ba5a-4008-9d2d-6f7bb24b0cfc'} (288b)

Traceback (most recent call last): File "/usr/local/gdp/python2.7.2/lib/python2.7/site-packages/celery-3.0.13-py2.7.egg/celery/worker/consumer.py", line 435, in on_task_received strategies[name](message, body, message.ack_log_error) KeyError: u'celery.task.http.HttpDispatchTask'

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

celery - 生成されたリストをセロリのタスクにマップする最良の方法

タスクから生成されたリストをセロリの別のタスクにマップする最良の方法に関するアドバイスを探しています。

parsePDF ドキュメントを解析し、ページのリストを出力するというタスクがあるとします。次に、各ページを という別のタスクに個別に渡す必要がありますfeed。これはすべて、というタスクの中に入る必要がありますprocess

だから、私がそれを行うことができる1つの方法はこれです:

もちろん、私はget()タスク内で呼び出しているので、それは良い考えではありません。

さらに、私のparseタスクはジェネレーター関数にラップされ、ページを生成できるため、これは非効率的です。つまり、最後のページがパーサーによって生成される前に、フィードのために最初のページをキューに入れることができるはずです。

別の可能性はこれを行うことです:

get()ただし、その例にはまだタスク内での呼び出しが含まれています。さらに、この例は単純化しすぎており、すべてのページがフィードされた後 (つまり a で) いくつかのことを行う必要がありますchord

セロリでこれを行うための最適な方法を探しています。アドバイスをいただければ幸いです。

ありがとう!