3

我已经查看了此处提出/回答的类似问题,但我无法弄清楚我的问题。我的烧瓶应用程序部署在 heroku 上时,没有连接到我的 heroku-redis 实例。相反,在我的 heroku 日志中,我得到:

2018-05-10T20:36:12.520794+00:00 heroku[web.1]: Starting process with command `flask db upgrade; flask translate compile; gunicorn microblog:app`
2018-05-10T20:36:12.705812+00:00 heroku[worker.1]: Starting process with command `rq worker microblog-tasks`
2018-05-10T20:36:13.385204+00:00 heroku[worker.1]: State changed from starting to up
2018-05-10T20:36:15.060614+00:00 heroku[worker.1]: Process exited with status 1
2018-05-10T20:36:15.080485+00:00 heroku[worker.1]: State changed from up to crashed
2018-05-10T20:36:14.989923+00:00 app[worker.1]: Error 111 connecting to localhost:6379. Connection refused.

为什么我的工作人员如此坚决地连接到我的本地 redis 服务器?我的过程文件是:

web: flask db upgrade; flask translate compile; gunicorn microblog:app
worker: rq worker microblog-tasks

运行“heroku config:get REDIS_URL”表明环境变量 REDIS_URL 确实在 heroku 中设置。后台任务是否需要不止一个测功机?就在 Heroku 上部署时,我的应用程序在本地没有问题。

单独但相关的问题:redis、redistogo 和 rediscloud 之间有什么区别?什么时候会使用它们中的每一个?非常感谢任何帮助。

4

1 回答 1

1

我的文章实际上有遗漏,对此我深表歉意。

启动 RQ worker 的命令需要包含 Redis 的连接 URL:

worker: rq worker -u $REDIS_URL microblog-tasks
于 2018-05-14T23:02:23.453 回答