7

TASK_SERIALIZERdjango-celeryを使用していますが、ピクルスではなくJSONに設定したいと思います。

タスクデコレータをから変更することで、メソッドごとにこれを行うことができます

@task

@task(serializer="json")

しかし、私はそれをグローバルにやりたいと思っています。設定

TASK_SERIALIZER="json"

insettings.pyは機能しません。実行しようとしています

import celery
celery.conf.TASK_SERIALIZER="json"

(ここで暗示されているように)結果は

AttributeError: 'module' object has no attribute 'conf'

djangoでセロリを実行するときにこの設定を構成する方法はありますか?

4

3 に答える 3

24

理解した。

settings.py設定する必要があります

CELERY_TASK_SERIALIZER = "json"

少なくとも私にとっては、Docs は混乱を招きます。

于 2011-07-08T23:30:42.433 に答える
6

celeryconfig ファイルを作成すると (ドキュメントで推奨されているように)、作業がずっとすっきりすることがわかりました。

セロリconfig.py

# Celery configuration file
BROKER_URL = 'amqp://'
CELERY_RESULT_BACKEND = 'amqp://'

CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'America/Los_Angeles'
CELERY_ENABLE_UTC = True

このコマンドで設定を送信できます(Celeryを呼び出したら)

celery.config_from_object('celeryconfig')
于 2013-05-24T23:40:58.580 に答える
1

ドキュメントから:

タスク メッセージの場合、CELERY_TASK_SERIALIZER 設定を pickle の代わりに「json」または「yaml」に設定できます。現在、タスク結果の代替ソリューションはありません (ただし、JSON を使用してカスタム結果バックエンドを作成するのは簡単な作業です)。

そのため、設定CELERY_RESULT_SERIALIZER = "json"は無駄に見えます。私の場合、結果はまだピクル状態です (Celery 3.1.3)。うん。知っている...

于 2013-11-13T14:15:21.120 に答える