2012-01-05 48 views
30

我使用芹菜2.4.6和django-celery 2.4.2。CeleryCAM为什么不能与Amazon SQS一起使用?

当我配置芹菜在这个问题上使用Amazon SQS每分辨率:Celery with Amazon SQS

我没有看到在celerycam表中的任何Django管理。如果我切换回RabbitMQ,任务会再次开始显示。

我在SQS中有很多(现在有40多个)队列,命名如下:“celeryev-92e068c4-9390-4c97-bc1d-13fd6e309e19”,看起来他们可能是相关的(一些较旧的队列甚至有一个事件在他们的),但没有什么显示在数据库中,我看到celerycam日志中没有错误。

任何有关这个问题可能会有什么建议或如何进一步调试这将是非常感谢。

+6

我还没有发现任何结论,所以我跑了一些测试,看看后端实际上是否支持celerycam。让celerycam工作的关键是-E(事件发送)给芹菜。在一个简短的测试中,似乎事件发送与RabbitMQ一起工作(当然),与Redis一起工作,不适用于SQS,并且不适用于Celery的Django数据库后端。 – 2012-01-16 19:34:44

+2

还有什么好运气?我正在尝试构建一个基于芹菜/ SQS的系统,并针对相同的问题。 – edub 2012-01-24 21:24:12

回答

3

SQS是AMQP总线的有限实现。据我了解,它不支持像兔子-MQ那样的PUB/SUB广播,这是事件正常工作所必需的。 SNS已经到位以支持广播,但它是一个单独的系统。

一些图书馆/软件包使用SimpleDB作为消息模型存储作为SQS之上的黑客来模拟AMQP的行为,但显然芹菜还没有完全破解。

相关问题