簡體   English   中英

如何使用 django-celery 配置 TASK_SERIALIZER

[英]How to configure TASK_SERIALIZER with django-celery

我正在使用 django-celery,我想將TASK_SERIALIZER設置為 JSON 而不是泡菜。

我可以通過將我的任務裝飾器從

@task

@task(serializer="json")

但我想在全球范圍內這樣做。 環境

TASK_SERIALIZER="json"

settings.py中不起作用。 試圖運行

import celery
celery.conf.TASK_SERIALIZER="json"

(如此處所暗示)導致

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

知道如何在通過 django 運行 celery 時配置此設置嗎?

弄清楚了。

settings.py你需要設置

CELERY_TASK_SERIALIZER = "json"

文檔令人困惑,至少對我而言。

我發現創建一個 celeryconfig 文件(就像文檔推薦的那樣)會讓事情變得更干凈。

芹菜配置文件

# 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')

文檔

對於任務消息,您可以將 CELERY_TASK_SERIALIZER 設置為“json”或“yaml”而不是 pickle。 目前沒有針對任務結果的替代解決方案(但使用 JSON 編寫自定義結果后端是一項簡單的任務)

所以設置CELERY_RESULT_SERIALIZER = "json"看起來沒用。 就我而言,結果仍在泡菜中(Celery 3.1.3)。 是的。 我知道...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM