我设置了一个 django celery,我正在从 rabbitmq 切换到使用 SQS 作为代理。我发现我用 routing_key 值装饰的任务没有在代理中产生消息?
设置是:
CELERY_QUEUES = {
"default": {
"exchange": "default",
"binding_key": "default"},
"sentry": {
"exchange": "default",
"binding_key": "sentry"},
}
CELERY_DEFAULT_QUEUE = "default"
CELERY_DEFAULT_EXCHANGE = "default"
CELERY_DEFAULT_EXCHANGE_TYPE = "direct"
CELERY_DEFAULT_ROUTING_KEY = "default"
任务定义为
@task(routing_key = 'sentry', ignore_result = True)
def doSomething():
print "Hello"
doSomething.delay() # No message is produced
一切都很好地路由到默认队列。不寻常的一切都适用于rabbit mq?
Amazon SQS 控制台显示队列“sentry”,但没有消息发送到它(我不确定是什么创建了队列)
奖励:不寻常的是,当我第一次尝试这个时(大约 4 小时前),一些消息似乎确实进入了哨兵队列?这可能是什么原因造成的?
谢谢