[英]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.