Как настроить TASK_SERIALIZER с помощью django-celery

Я использую django-celery и хочу установить TASK_SERIALIZER в JSON вместо рассола.

Я могу сделать это для каждого метода, изменив декораторы задач с

@task

to

@task(serializer="json")

Но я хотел бы сделать это глобально. Параметр

TASK_SERIALIZER="json"

в settings.py не работает. Пытаюсь бежать

import celery
celery.conf.TASK_SERIALIZER="json"

(как подразумевается здесь) приводит к

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

Любая идея, как настроить этот параметр при запуске сельдерея через django?


person Leopd    schedule 08.07.2011    source источник


Ответы (3)


Догадаться.

В settings.py нужно установить

CELERY_TASK_SERIALIZER = "json"

Документы сбивают с толку, по крайней мере, для меня.

person Leopd    schedule 08.07.2011

Я обнаружил, что создание файла celeryconfig (как рекомендуется в документации) значительно упрощает работу.

celeryconfig.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')
person Jarie Bolander    schedule 24.05.2013

Из документ :

Для сообщений о задачах вы можете установить для параметра CELERY_TASK_SERIALIZER значение «json» или «yaml» вместо рассола. В настоящее время нет альтернативного решения для результатов задачи (но написание пользовательского бэкэнда результатов с использованием JSON — простая задача)

Так что настройка CELERY_RESULT_SERIALIZER = "json" выглядит бесполезной. В моем случае результаты все еще в рассоле (Celery 3.1.3). Ага. Я знаю...

person Stan    schedule 13.11.2013
comment
Похоже, теперь вы можете указать сериализатор результатов: celery.readthedocs .org/en/latest/ - похоже, что другие части документации не были обновлены, чтобы отразить это.... запрос на извлечение отправлен - person scytale; 01.05.2015