gpt4 book ai didi

django - 使用 RabbitMQ 的 Amazon Elastic Beanstalk 上的 Celery 超时异常

转载 作者:行者123 更新时间:2023-12-02 02:16:45 31 4
gpt4 key购买 nike

我正在尝试在我的 Beanstalk 环境中使用 Celery(这是完成我的项目技术堆栈的最后一部分:P)。这是我到目前为止所做的:

  • 由于 RabbitMQ 是 Celery 的最佳代理,而 Amazon 不提供专用服务,因此我创建了一个基于 Ubuntu 13 64 位的自定义 AMI
  • 已安装 RabbitMQ
  • 删除了默认用户 guest/guest
  • 创建了自定义用户
  • 创建了自定义虚拟主机
  • 已安装管理插件
  • 使用 http API 测试了我的配置,以确认我的 RabbitMQ 服务器已启动并正在运行。

到目前为止一切顺利!然后在我的 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"

一旦我部署了我的应用程序,我没有发现任何与 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

我在设置中将代理 URL 指定为:

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

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

最佳答案

我忘了我问过这个问题......无论如何我解决了。只需为 RabbitMQ 打开正确的 TCP 端口即可:

22

15672

5672

我还改变了运行 celery 的方式,通过使用supervisor + django-supervisor 来正确地守护它:)

关于django - 使用 RabbitMQ 的 Amazon Elastic Beanstalk 上的 Celery 超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920919/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com