1. ホーム
  2. python

Celery with RabbitMQ: AttributeError: 'DisabledBackend' オブジェクトには '_get_task_meta_for' という属性がない。

2023-12-09 18:08:33

質問

私は Celeryチュートリアルの最初の一歩 .

次のようなタスクを定義します。

from celery import Celery

app = Celery('tasks', broker='amqp://guest@localhost//')

@app.task
def add(x, y):
    return x + y

次に、それを呼び出します。

>>> from tasks import add
>>> add.delay(4, 4)

しかし、以下のようなエラーが発生します。

AttributeError: 'DisabledBackend' object has no attribute '_get_task_meta_for'

celeryワーカーとrabbit-mqサーバーの両方を動かしています。むしろ不思議なことに、celery workerはタスクが成功したと報告しています。

[2014-04-22 19:12:03,608: INFO/MainProcess] Task test_celery.add[168c7d96-e41a-41c9-80f5-50b24dcaff73] succeeded in 0.000435483998444s: 19 

なぜこれがうまくいかないのでしょうか?

どのように解決するのですか?

チュートリアルを読み進めてください。それはで説明されます 結果を保存 の章で説明します。

Celeryを起動するには、タスクに関するメッセージを送信するために必要なブローカーパラメータだけを提供する必要があります。もし、終了したタスクから返される状態や結果に関する情報を取得したい場合は、バックエンドパラメータを設定する必要があります。すべてのパラメータとその説明は 設定ドキュメントを参照してください。にあります。 .