在 Heroku 上挂载 Celery 时出现“[Errno 111] Connection denied”错误
Posted
技术标签:
【中文标题】在 Heroku 上挂载 Celery 时出现“[Errno 111] Connection denied”错误【英文标题】:Get "[Errno 111] Connection refused" error when mount Celery on Heroku 【发布时间】:2014-09-05 07:53:36 【问题描述】:我试图使用 Celery 为我的 Django 项目编写一个后端异步进程。 在将 Cloudamqp 与 Heroku 一起使用时,我使用 Rabbitmq 作为我的任务队列。 问题是:整个项目在我自己的笔记本电脑上完美运行(使用 localhost 进行测试),而在生产服务器上却无法运行。
这是我收到的错误消息:[Errno 111] Connection refused
然后我做了一些研究,我可能错了,但似乎问题是我已经达到了可以使用的工人数量的限制,因为我现在使用的是 Heroku 的免费帐户。 我读到过:“但是如果您使用免费计划,请记住调整 BROKER_POOL_LIMIT。将其设置为 1,您应该会很好。如果您有连接问题,请尝试降低您的网络工作者和芹菜中的并发性工人。”但我不知道该怎么做。
这是我的设置.py:
BROKER_URL="amqp://paswzaog:0TwC3i7cBdTAKA9JE57EMm1xUzovFbry@turtle.rmq.cloudamqp.com/paswzaog"
BROKER_POOL_LIMIT = 1
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
CELERY_BEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
CELERY_RESULT_BACKEND = 'amqp'
CELERY_TASK_RESULT_EXPIRES = 18000 # 5 hours.`
这里是错误信息:
'[Errno 111] Connection refused
'/app/.heroku/python/bin',
'/app/.heroku/python/lib/python2.7/site-packages/setuptools-3.6-py2.7.egg',
'/app/.heroku/python/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg',
'/app',
'/app/.heroku/python/lib/python27.zip',
'/app/.heroku/python/lib/python2.7',
'/app/.heroku/python/lib/python2.7/plat-linux2',
'/app/.heroku/python/lib/python2.7/lib-tk',
'/app/.heroku/python/lib/python2.7/lib-old',
'/app/.heroku/python/lib/python2.7/lib-dynload',
'/app/.heroku/python/lib/python2.7/site-packages',
'/app','
以前有人遇到过类似的问题吗?或者有人可以推荐一个关于如何在 Heroku 上设置 Celery 内容的详尽教程吗?提前致谢!
【问题讨论】:
【参考方案1】:您的凭据可能无效。或者你有超过 1 个并发连接。
测试这一点的一个好方法是将您的网络服务器扩展到 0(heroku scale web=0),然后创建一个工作人员(heroku scale worker=1)——然后跟踪你的 Heroku 日志(heroku 日志—— tail) 以查看您的单个工作人员是否可以连接。
【讨论】:
是的,原来这是我的凭证问题。感谢您给我提示!以上是关于在 Heroku 上挂载 Celery 时出现“[Errno 111] Connection denied”错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上部署时出现 Django 1.7 迁移错误
在 Heroku 上部署 React 应用程序和 Nginx 时出现问题