为啥 CeleryCAM 不能与 Amazon SQS 一起使用?

Posted

技术标签:

【中文标题】为啥 CeleryCAM 不能与 Amazon SQS 一起使用?【英文标题】:Why doesn't CeleryCAM work with Amazon SQS?为什么 CeleryCAM 不能与 Amazon SQS 一起使用? 【发布时间】:2012-02-03 10:07:48 【问题描述】:

我正在使用 Celery 2.4.6 和 django-celery 2.4.2。

当我根据这个问题的解决方案配置 Celery 以使用 Amazon SQS 时:Celery with Amazon SQS

我在 Django 管理员的 celerycam 表中看不到任何内容。如果我切换回 RabbitMQ,任务会再次出现。

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

任何关于问题可能是什么或如何进一步调试的建议将不胜感激。

【问题讨论】:

我还没有找到任何结论性的东西,所以我进行了一些测试,看看哪些后端实际上支持 celerycam。使 celerycam 工作的关键是向 celeryd 发送 -E(事件发送)。在一个简短的测试中,似乎事件发送适用于 RabbitMQ(当然),适用于 Redis,不适用于 SQS,也不适用于 Celery 的 Django 数据库后端。 这个还有什么好运气吗?我正在尝试构建一个基于 Celery/SQS 的系统并遇到同样的问题。 【参考方案1】:

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

一些库/包使用 SimpleDB 作为消息模型存储,作为 SQS 之上的 hack,以模拟正确的 AMQP 行为,但显然 celery 还没有完整的 hack。

【讨论】:

以上是关于为啥 CeleryCAM 不能与 Amazon SQS 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我应该使用 Amazon Kinesis 而不是 SNS-SQS?

为啥需要 Amazon S3 和 Cloudfront?

为啥 CSS 变量不能与 SCSS 变量一起使用

Angular + amazon-cognito-identity-js,为啥我收到错误:未定义全局

Drupal 7聚合并压缩CSS / JS不能与Amazon S3一起使用

为啥我不能在 C 中读取 Ctrl+S?