问题描述
我更新了环境变量,在 Heroku 中称为 REDdis_URL 的配置变量
我关闭了我的应用程序 dyno 和我的工作程序 dyno。
然后我重新启动了我的应用程序 dyno,web gunicorn myapplication.wsgi
并且没有问题
然后我重新启动了我的工人 worker celery -A myapplication worker -l info --concurrency 2
这导致我在日志中收到以下错误 [2021-07-06 16:00:05: ERROR/MainProcess] Cannot connect to redis://NEW_REDdis_URL//: Error while reading from socket: (104,'Connection reset by peer').
如何让工作人员为 REDdis_URL 引用更新的配置变量(环境变量)?
解决方法
使用 OS os.environ.get('REDIS_URL')
Heroku 会定期轮换凭据并更新附加此数据存储的应用程序。
Heroku 建议使用加密,因此使用 rediss://
URL 而不是 redis://
对于芹菜,类似于:CELERY_BROKER_URL = 'rediss://:{Password}@{Host}:{Port}'
Heroku 命令可轻松获取此 url heroku redis:credentials REDIS_URL
推荐人:https://devcenter.heroku.com/articles/heroku-redis#using-the-cli