10

タスクの結果をデータベースに保存するようにdjangoceleryをセットアップしようとしています。

私は設定しました:

CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'

次に、データベースを同期して移行しました(エラーなし)。

Celery は機能しており、タスクは処理されます (結果を取得できます) が、管理者はタスクがないことを示しています。データベースには と の 2 つのテーブルがcelery_taskmetaありdjcelery_taskmetaます。1 つ目は結果を保持し、2 つ目は管理画面に表示されます。誰でも適切に構成する方法を知っていますか?

4

3 に答える 3

19

djcelery を使用する場合は、docを確認してくださいCELERY_RESULT_BACKEND="database"。djcelery はデフォルトで設定されているため、この行を設定するか、わざわざ書く必要はありません。

celery_taskmeta結果はテーブルに保存されdjcelery.models.TaskMetaます。自分で管理者に登録する必要があります。

# in some admin.py, which is contained by an app after `djcelery` in `INSTALLED_APPS`
# or directly in djcelery/admin.py

from djcelery.models import TaskMeta
class TaskMetaAdmin(admin.ModelAdmin):
    readonly_fields = ('result',)    
admin.site.register(TaskMeta, TaskMetaAdmin)
于 2012-05-20T13:48:06.227 に答える
10

正解のある関連質問はこちらです。

実際に実行する必要があります

python manage.py celery worker -E

python manage.py celerycam

その後、タスクの結果が管理画面に表示されます (Djcelery › Tasks)

于 2013-08-03T08:11:34.947 に答える
0


app.conf.update(CELERY_RESULT_BACKEND='djcelery.backends.database.DatabaseBackend') などの設定更新の移動

ファイルの最後まで celery.py がうまくいきました。

于 2015-01-13T03:45:29.893 に答える