Django Celery Redis



A rediss:// URL must have parameter ssl_cert_reqs and this must be set to CERT_REQUIRED, CERT_OPTIONAL, or CERT_NONE

设置
CELERY_BROKER_URL = os.environ.get('REDIS_URL', "redis://localhost:6379")
CELERY_RESULT_BACKEND = os.environ.get('REDIS_URL', "redis://localhost:6379")
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'

celery.py

from __future__ import absolute_import, unicode_literals
from celery import Celery
import os, ssl
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproj.settings')
app = Celery(
'myproj',
broker_use_ssl = {
'ssl_cert_reqs': ssl.CERT_NONE
})
app.config_from_object('django.conf:settings', namespace="CELERY")
app.autodiscover_tasks()

我将ssl_cert_reqs的值更改为不同的值'none', 'cert_required',…,但是没有,当我使用redis://而不是redis://时总是相同的错误。

我从来没有使用过选项broker_use_ssl,你可以试着删除这个选项然后再试一次吗

app = Celery('myproj')

或更新

Celery('myproj',
broker_use_ssl = {
'ssl_cert_reqs': ssl.CERT_NONE
},
redis_backend_use_ssl = {
'ssl_cert_reqs': ssl.CERT_NONE
}
)