1

私はRabbitMQ 3.1.5でCelery 3.0.23を使用するDjango 1.5.1 webappを持っています。そしてsqlite3。
シンプルな を使用してジョブを送信できますresult = status.tasks.mymethod.delay(parameter)。すべてのタスクが正しく実行されます。

[2013-09-30 17:04:11,369: INFO/MainProcess] Got task from broker: status.tasks.prova[a22bf0b9-0d5b-4ce5-967a-750f679f40be]
[2013-09-30 17:04:11,566: INFO/MainProcess] Task status.tasks.mymethod[a22bf0b9-0d5b-4ce5-967a-750f679f40be] succeeded in 0.194540023804s: u'Done'

提出された最新の 10 件のジョブとそのステータスをページに表示したいと考えています。Django でそのようなオブジェクトを取得する方法はありますか? データベース (celery_taskmetaおよび) にいくつかのテーブルがあり、オブジェクトへのアクセスをcelery_taskmeta_2ff6b945試みましたが、Django は常にページを表示します。 DjangoからCeleryの結果にアクセスする正しい方法は何ですか? やっているAttributeError

cel = celery.status.tasks.get(None)  
cel = status.tasks.all()

は機能せず、前述の AttributeError が発生します。(status私のアプリの名前です)

編集:この小さなチュートリアルが言うように、タスクが保存されていると確信しています:
デフォルトでは、django-celeryはこの状態をDjangoデータベースに保存します。別の結果バックエンドを選択するか、状態をすべて無効にすることを検討してください (結果バックエンドを参照してください)。
リンクをたどると、DB 接続をセットアップする方法に関する参照のみがあり、結果を取得する方法はありません。

4

1 に答える 1

0

これを試して:

from djcelery.models import TaskMeta

TaskMeta.objects.all()
于 2013-09-30T16:40:59.653 に答える