如何设置 Celery 以通过 ssl 与 Azure Redis 实例对话

2024-04-22

使用“的伟大答案”如何在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)

已经可以使用rediss://反而redis://.

url = 'rediss://:<access key>@<my server>.redis.cache.windows.net:6380/0'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设置 Celery 以通过 ssl 与 Azure Redis 实例对话 的相关文章

随机推荐