使用“的伟大答案”如何在microsoft azure上的django项目中配置celery-redis? https://stackoverflow.com/questions/39616701/how-to-configure-celery-redis-in-django-project-on-microsoft-azure”,我可以使用以下命令将 Celery 配置为使用 Azure Redis 缓存非 SSL 端口,6379,使用以下 Python 代码:
from celery import Celery
# This one works
url = 'redis://:<access key>@<my server>.redis.cache.windows.net:6379/0'
# I want to use a url that specifies ssl like one of the following:
# url = 'redis://:<my key>=@<my server>.redis.cache.windows.net:6380/0'
# url = 'redis://:<my key>@<my server>.redis.cache.windows.net:6380/0?ssl=True'
app = Celery('tasks', broker=url)
@app.task
def add(x, y):
return x + y
但是,我想让 celery 使用 ssl 并进行通信使用 ssl 的端口 3380到 Azure Redis 缓存。如果我将端口更改为 6380,在运行以下命令后等待几分钟后,我会收到“从套接字读取时出错”的消息:
celery -A tasks worker --loglevel=INFO -Q "celery" -Ofair
有谁知道如何在 Celery 或 Azure 端进行配置,以便我可以让 celery 在默认情况下进行通信3380Azure Redis 缓存上的端口使用ssl?
我使用的是最新版本的 Celery (4.0.2)
请注意,直接从网络连接时,如下所示的代码不会出现任何问题Linux客户端(在 Azure 上)使用端口 3380 和 ssl 使用 Python 的 redis 库:
import redis
redis.StrictRedis(host='<my host>.redis.cache.windows.net', port=6380, db=0, password='<my key>', ssl=True)