我已经在heroku上部署了一个最小的django / celery / redis项目,并且正在尝试在python shell中对其进行测试:
heroku run python
>>> import tasks
>>> tasks.add.delay(1, 2)
问题是task.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。在本地运行正常。
答案 0 :(得分:0)
结果是我在应用程序目录中的task.py文件中缺少以下内容。
import os
app.conf.update(BROKER_URL=os.environ['REDIS_URL'],
CELERY_RESULT_BACKEND=os.environ['REDIS_URL'])
对此进行了补充,现在一切正常。