【问题标题】:Cannot connect to redis://localhost:6379/0: Error 111 connecting to localhost:6379. Connection refused无法连接到 redis://localhost:6379/0:连接到 localhost:6379 时出现错误 111。拒绝连接
【发布时间】:2020-03-13 00:00:06
【问题描述】:

我已经将一个最小的 django/celery/redis 项目部署到 heroku,我正在尝试在 python shell 中对其进行测试:

 heroku run python

 >>> import tasks
 >>> tasks.add.delay(1, 2)

问题是 tasks.add.delay(1,2) 不产生任何输出,它只是挂在那里,而在本地它给出了一条异步消息。

当我尝试使用“heroku logs -t -p worker”查看应用程序日志中运行的任务时

它给了我这个错误:

   ERROR/MainProcess] consumer: Cannot connect to redis://localhost:6379/0: Error 111      
   connecting to localhost:6379. Connection refused..

PS。它在本地运行良好。

【问题讨论】:

  • 你能显示你的设置在哪里配置celery吗?

标签: django heroku redis celery


【解决方案1】:

原来我在我的应用程序目录中的 tasks.py 文件中缺少以下内容。

   import os
   app.conf.update(BROKER_URL=os.environ['REDIS_URL'],
            CELERY_RESULT_BACKEND=os.environ['REDIS_URL'])

添加了它,现在一切正常。

【讨论】:

  • 你可以把它们放在settings.py