首页 > 解决方案 > Celery 不再通过 Heroku 连接到 Redis

问题描述

我在 Heroku 上设置并部署了我的 Redis 服务器,Celery 功能齐全,但现在它不想连接。主机和端口最近更新,但我已将其切换到我的代码,就像我通常做的那样来解决问题,但它仍然存在。

[2021-04-22 09:01:46,999: ERROR/MainProcess] consumer: Cannot connect to redis://:host:port//: Error while reading from socket: (54, 'Connection reset by peer').

我的 celery 设置如下,并且凭据都与 Heroku 上的凭据匹配-

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myapp.settings')

app = Celery('myapp')

app.conf.timezone = 'Europe/London'

app.config_from_object('django.conf:settings')
app.conf.update(BROKER_URL='redis://:password@host:port',
                CELERY_RESULT_BACKEND='redis://:password@host:port')

在我的设置中,我只有 -

CELERY_BROKER_URL = 'redis://:password@host:port'

如果我检查 heroku redis:credentials REDIS_URL 我得到 -

rediss://:password@host:port

redis 和 redis 的区别是在这里做点什么吗?

我还在文档中看到 Redis 的通常设置是 - 'redis://:user:password@host:port' - 但我之前不必添加用户并且它运行良好。在 Heroku 上查看 Redis 凭据时也没有指定用户。

正如我所提到的,直到一周前它工作得非常好,除了 Redis 定期更新之外没有任何变化。

标签: pythondjangoherokurediscelery

解决方案


推荐阅读