错误 111 连接被拒绝(Python、芹菜、redis)



我试图在 redis 中获取所有活动/计划/保留任务:

from celery.task.control import inspect
inspect_obj = inspect()
inspect_obj.active()
inspect_obj.scheduled()
inspect_obj.reserved()

但遇到了如下错误列表:我的虚拟环境==>哈伯勒API。我正在从 ec2 控制台使用它

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/celery/app/control.py", line 81, in active
return self._request('dump_active', safe=safe)
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/celery/app/control.py", line 71, in _request
timeout=self.timeout, reply=True,
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/celery/app/control.py", line 316, in broadcast
limit, callback, channel=channel,
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/kombu/pidbox.py", line 283, in _broadcast
chan = channel or self.connection.default_channel
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/kombu/connection.py", line 771, in default_channel
self.connection
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/kombu/connection.py", line 756, in connection
self._connection = self._establish_connection()
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/kombu/connection.py", line 711, in _establish_connection
conn = self.transport.establish_connection()
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/kombu/transport/pyamqp.py", line 116, in establish_connection
conn = self.Connection(**opts)
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/amqp/connection.py", line 165, in __init__
self.transport = self.Transport(host, connect_timeout, ssl)
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/amqp/connection.py", line 186, in Transport
return create_transport(host, connect_timeout, ssl)
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/amqp/transport.py", line 299, in create_transport
return TCPTransport(host, connect_timeout)
File "/home/ec2-user/HubblerAPI/local/lib/python3.4/site-
packages/amqp/transport.py", line 95, in __init__
raise socket.error(last_err)
**OSError: [Errno 111] Connection refused**

我的芹菜配置文件如下:

BROKER_TRANSPORT = 'redis'
BROKER_TRANSPORT_OPTIONS = {
    'queue_name_prefix': 'dev-',
    'wait_time_seconds': 10,
    'polling_interval': 30,
    # The polling interval decides the number of seconds to sleep 
      between unsuccessful polls
    'visibility_timeout': 3600 * 5,
    # If a task is not acknowledged within the visibility_timeout, the 
      task will be redelivered to another worker and executed.
}
CELERY_MESSAGES_DB = 6
BROKER_URL = "redis://%s:%s/%s" % (AWS_REDIS_ENDPOINT, AWS_REDIS_PORT, 
              CELERY_MESSAGES_DB)

我在这里做错了什么,因为错误日志表明它没有使用 redis 代理。

问题是在 settings.py 中使用"BROKER_URL"而不是"CELERY_BROKER_URL"。 Celery 找不到 URL,默认使用 rabbitmq 端口而不是 redis 端口。

看起来你的python代码无法识别你的配置,因为它试图使用RabbitMQ的ampq协议而不是配置的代理。

我建议如下

https://docs.celeryq.dev/en/stable/getting-started/backends-and-brokers/redis.html

你的配置看起来类似于Celery的Django配置,但你似乎没有在Django中使用Celery。

https://docs.celeryq.dev/en/latest/django/first-steps-with-django.html

相关内容

  • 没有找到相关文章

最新更新