我正在运行一个 Heroku Redis 实例,它始终工作正常,但升级后,当我尝试运行 celery Workers 时,出现以下错误
[2021-07-23 11:06:08,135: ERROR/MainProcess] consumer: Cannot connect to redis://:**@ec2-54-***-***-*.eu-west-1.compute.amazonaws.com:*****//: Error while reading from socket: (104, 'Connection reset by peer').
Trying again in 12.00 seconds... (6/100)
一切似乎都是最新的,我似乎不知道如何再次运行它。我尝试删除 redis 实例并从头开始创建它,但什么也没有。
2024 年 9 月,Heroku 更新了 REDIS 以使用安全的 TLS 连接 URL。请参阅这篇帮助文章,了解有关必须对 Redis 配置进行哪些配置变量更改的更多信息。
在我的例子中,我使用 redis.Redis python 函数来创建如下连接:
import os
from urllib.parse import urlparse
import redis
url = urlparse(os.environ.get("REDIS_URL"))
r = redis.Redis(host=url.hostname, port=url.port, password=url.password, ssl=(url.scheme == "rediss"), ssl_cert_reqs=None)
我缺少参数
ssl=(url.scheme == "rediss")
和 ssl_cert_reqs=None
确保指定 SSL 相关配置参数
ssl=True
和 ssl_cert_reques=None