redis - Celery 未连接到 Redis 代理 : Connection to broker lost

标签 redis amqp django-celery kombu

我正在尝试让 Redis 充当我在 Django 上安装的 Celery 3.0.19 的代理。我看到 redis-server 正在端口 6379 上运行。当我运行一个简单的 Celery 测试时,我得到以下堆栈跟踪:

Ubuntu Lucid 10.0.4
Celery 3.0.19

celery -A tasks worker --loglevel=info

[2013-05-02 18:56:27,835: INFO/MainProcess] consumer: Connected to redis://127.0.0.1:6379/0.
[2013-05-02 18:56:27,835: ERROR/MainProcess] consumer: Connection to broker lost. Trying to re-establish the connection...
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/celery/worker/consumer.py", line 394, in start
self.reset_connection()
File "/usr/local/lib/python2.6/dist-packages/celery/worker/consumer.py", line 744, in reset_connection
self.connection, on_decode_error=self.on_decode_error,
File "/usr/local/lib/python2.6/dist-packages/celery/app/amqp.py", line 311, in __init__
**kw
File "/usr/local/lib/python2.6/dist-packages/kombu/messaging.py", line 355, in __init__
self.revive(self.channel)
File "/usr/local/lib/python2.6/dist-packages/kombu/messaging.py", line 367, in revive
self.declare()
File "/usr/local/lib/python2.6/dist-packages/kombu/messaging.py", line 377, in declare
queue.declare()
File "/usr/local/lib/python2.6/dist-packages/kombu/entity.py", line 490, in declare
self.queue_declare(nowait, passive=False)
File "/usr/local/lib/python2.6/dist-packages/kombu/entity.py", line 516, in queue_declare
nowait=nowait)
File "/usr/local/lib/python2.6/dist-packages/kombu/transport/virtual/__init__.py", line 404, in queue_declare
return queue, self._size(queue), 0
File "/usr/local/lib/python2.6/dist-packages/kombu/transport/redis.py", line 516, in _size
sizes = cmds.execute()
File "/usr/local/lib/python2.6/dist-packages/redis/client.py", line 1919, in execute
return execute(conn, stack, raise_on_error)
File "/usr/local/lib/python2.6/dist-packages/redis/client.py", line 1811, in _execute_transaction
self.parse_response(connection, '_')
File "/usr/local/lib/python2.6/dist-packages/redis/client.py", line 1882, in parse_response
self, connection, command_name, **options)
File "/usr/local/lib/python2.6/dist-packages/redis/client.py", line 387, in parse_response
response = connection.read_response()
File "/usr/local/lib/python2.6/dist-packages/redis/connection.py", line 312, in read_response
raise response
ResponseError: unknown command 'MULTI'

最佳答案

你需要 redis 版本 >= 2.2.0。

关于redis - Celery 未连接到 Redis 代理 : Connection to broker lost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16345811/

相关文章:

rabbitmq - Celery:无法使用新用户名连接远程工作人员

spring-boot - 更新rabbitmq中消息的有效负载

java - 带有 AMQP 消费者的 Camel 路由在 Eclipse 中运行正常,在 karaf 中挂起

python - Redis线程解释

node.js - 这种技术可以堆叠吗?

model - AsyncApi 和 RabbitMq

django - 使用 Django 默认电子邮件后端通过 Celery 发送电子邮件

python - Celery 连接代理丢失导致 CPU 使用率达到 100%

redis - Spring Data 对 Redis BRPOPLPUSH 的支持

redis - 如何从 Redis 中的列表中检索所有哈希值?