首页 > 解决方案 > 配置 Celery + AWS SQS 以撤销任务

问题描述

我在 AWS SQS 上运行 Celery+Kombu 4.4.6 并希望撤销和终止任务。通读文档和 SO 帖子,传输需要允许广播消息。SQS 不做广播消息,而 Celery+Kombu 需要使用 SimpleDB。早在 1.x 版本中,该选项就默认关闭了。要启用它,support_fanout = True需要将其添加到传输选项中。

但是仅添加该选项对我不起作用,我无法弄清楚我错过了什么。可能的选项是:

在我的app.celery我有:

app = Celery('app',
    broker=''sqs://<Access key>:<secret key>@')),
    backend='cache+memcached://<host>:11211/')),
)

在我的app.settings我有:

CELERY_BROKER_URL='sqs://<access key>:<secret key>@'))
CELERY_BROKER_TRANSPORT_OPTIONS = {
    'region': '<region>',
    'supports_fanout': True,
}
CELERY_DEFAULT_QUEUE = 'app'
CELERY_DEFAULT_EXCHANGE = 'app'
CELERY_DEFAULT_ROUTING_KEY = 'app'

标签: djangoceleryamazon-simpledbkombu

解决方案


我的最终解决方案是将 Amazon MQ 与 RabbitMQ 实例一起使用。Amazon SimpleDB 似乎消失了,使得 Celery+Kombu 中的任何支持都过时和损坏。


推荐阅读