Django Amazon Elastic Beanstalk上使用RabbitMQ的芹菜超时异常

Django Amazon Elastic Beanstalk上使用RabbitMQ的芹菜超时异常,django,amazon-web-services,rabbitmq,celery,amazon-elastic-beanstalk,Django,Amazon Web Services,Rabbitmq,Celery,Amazon Elastic Beanstalk,我试图在我的Beanstalk环境中使用芹菜(这是完成我的项目的技术堆栈的最后一部分:p)。 这就是我到目前为止所做的: 因为,RabbitMQ是芹菜的最佳代理,而Amazon不提供专门的服务。我创建了一个基于Ubuntu13 64位的定制AMI 已安装RabbitMQ 已删除默认用户guest/guest 创建了一个自定义用户 已创建自定义虚拟主机 已安装的管理插件 使用http API测试我的配置,以确认我的RabbitMQ服务器已启动并正在运行 到目前为止还不错!然后在我的beanst

我试图在我的Beanstalk环境中使用芹菜(这是完成我的项目的技术堆栈的最后一部分:p)。 这就是我到目前为止所做的:

  • 因为,RabbitMQ是芹菜的最佳代理,而Amazon不提供专门的服务。我创建了一个基于Ubuntu13 64位的定制AMI
  • 已安装RabbitMQ
  • 已删除默认用户guest/guest
  • 创建了一个自定义用户
  • 已创建自定义虚拟主机
  • 已安装的管理插件
  • 使用http API测试我的配置,以确认我的RabbitMQ服务器已启动并正在运行
到目前为止还不错!然后在我的beanstalk.config文件中,我添加了几个芹菜命令:

04_celery_periodic_tasks:
    command: "celery worker --app=com.cygora --loglevel=info --beat --autoreload -n period_tasks_worker.%h"
    leader_only: true
05_celery_standard_worker:
    command: "celery worker --app=com.cygora --loglevel=info --autoreload -n worker_1.%h"
一旦我部署了我的应用程序,我就没有发现任何与芹菜相关的错误(因此我假设从“Python/Django方面”来看一切正常)。。。但当我使用我的网站的一个功能,需要通过芹菜向兔子发送消息时,我得到一个超时异常:

[Thu Feb 20 22:01:24 2014] [error]    File "/opt/python/run/venv/lib/python2.7/site-packages/kombu/transport/pyamqp.py", line 111, in establish_connection
[Thu Feb 20 22:01:24 2014] [error]      conn = self.Connection(**opts)
[Thu Feb 20 22:01:24 2014] [error]    File "/opt/python/run/venv/lib/python2.7/site-packages/amqp/connection.py", line 165, in __init__
[Thu Feb 20 22:01:24 2014] [error]    self.transport = create_transport(host, connect_timeout, ssl)
[Thu Feb 20 22:01:24 2014] [error]   File "/opt/python/run/venv/lib/python2.7/site-packages/amqp/transport.py", line 274, in create_transport
[Thu Feb 20 22:01:24 2014] [error]   return TCPTransport(host, connect_timeout)
[Thu Feb 20 22:01:24 2014] [error]  File "/opt/python/run/venv/lib/python2.7/site-packages/amqp/transport.py", line 89, in __init__
[Thu Feb 20 22:01:24 2014] [error]  raise socket.error(last_err)
[Thu Feb 20 22:01:24 2014] [error]  error: timed out
我在设置中将代理url指定为:

BROKER_URL = "amqp://myuser:mypassword@myelasticip:5672/myvirtualhost"

我错过了什么或者我做错了什么?为什么无法建立套接字连接?

我忘了我问过这个问题。。。反正我解决了。这只是为RabbitMQ打开正确的TCP端口的问题:

二十二

15672

5672


我还改变了运行芹菜的方式,通过使用supervisor+django supervisor来正确地对其进行后台监控:)

您可以分享一下将芹菜作为后台程序运行的解决方案吗?我很想知道你是怎么设置的。我提出了一个解决方案,正如我在下面的回答中所描述的,我很有兴趣与你做的事情进行比较我也很好奇,我想与你进行一次小讨论。。。能给我你的电子邮件吗?(我的名字是:davidezanotti(at)gmail.com)同上,我也想听听关于在电子商务中监控芹菜的细节。