4

我有一个已经部署到 Heroku 的 Django 应用程序。这个应用程序使用 Celery 进行消息队列,我已经使用 RabbitMQ 在本地运行它,没有发生任何事故。

不幸的是,当我将这个婴儿部署到 Heroku 时,我发现 RabbitMQ 插件不可用,我必须使用 CloudAMQP。CloudAMQP 和 Heroku 的文档让我相信我可以使用 Celery(即使他们推荐 Pika),但是当我尝试部署时,我的调度程序和工作进程都会遇到严重的连接错误。以下是确切的错误:

2012-07-09T16:46:22+00:00 app[scheduler.1]: [2012-07-09 11:46:22,234: ERROR/Beat] Celerybeat: Connection error: [Errno 111] Connection refused. Trying again in 2.0 seconds...
2012-07-09T16:46:23+00:00 app[worker.1]: [2012-07-09 11:46:23,852: ERROR/MainProcess] Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 2 seconds...

我应该注意我的 Heroku 配置变量确实有一个 CLOUDAMQP_URL,所以这应该不是问题吗?

如果有人将 CloudAMQP 与 Django/Heroku 一起使用,我将不胜感激,可以给我一些关于如何确保 Celery 可以与代理连接的指导。

4

2 回答 2

6

您可能超出了免费计划的 3 个并发连接限制。将 BROKER_POOL_LIMIT设置为 1,它应该会更好地工作。

于 2012-07-10T11:54:57.630 回答
4

Make sure that you have this at the top of your settings.py file.

import djcelery
djcelery.setup_loader()
于 2012-11-15T20:06:33.453 回答