dav*_*ode 4 django rabbitmq amazon-web-services celery amazon-elastic-beanstalk
我正在尝试在我的 Beanstalk 环境中使用 Celery(这是完成我项目的技术堆栈的最后一部分:P)。这是我到目前为止所做的:
到现在为止还挺好!然后在我的 beanstalk .config文件中,我为 celery 添加了几个命令:
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"
Run Code Online (Sandbox Code Playgroud)
一旦我部署了我的应用程序,我就没有发现任何与 celery 相关的错误(所以我假设这一切都很好,从“Python/Django 方面”)......但是一旦我使用我网站的一个功能需要通过 Celery 向 Rabbit 发送消息,我收到超时异常:
[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
Run Code Online (Sandbox Code Playgroud)
我在设置中将代理 url 指定为:
BROKER_URL = "amqp://myuser:mypassword@myelasticip:5672/myvirtualhost"
Run Code Online (Sandbox Code Playgroud)
我错过了什么或我做错了什么?为什么无法建立socket连接?
我忘了我问过这个问题……无论如何我解决了。这只是为 RabbitMQ 打开正确的 TCP 端口的问题:
22
15672
5672
我还改变了运行 celery 的方式,通过使用 supervisor + django-supervisor 来正确地守护它:)
归档时间: |
|
查看次数: |
1007 次 |
最近记录: |