gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 06:13:22 27 4
gpt4 key购买 nike

利用“How to configure celery-redis in django project on microsoft azure?”的精彩答案,我可以使用以下 Python 代码将 Celery 配置为使用非 ssl 端口 6379 使用 Azure Redis 缓存:

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 任务 worker --loglevel=INFO -Q "celery"-Ofair

有谁知道如何在 Celery 或 Azure 端进行配置,以便我可以使用 ssl 在 Azure Redis 缓存上的默认 3380 端口上进行通信?

我使用的是最新版本的 Celery (4.0.2)

请注意,当使用端口 3380 和 ssl 使用 Python 的 redis 库直接从 Linux 客户端(在 Azure 上)连接时,类似以下的代码可以正常工作:

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'

关于python - 如何设置 Celery 以通过 ssl 与 Azure Redis 实例对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44663135/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com