带有 SQS 代理和死信队列的 Celery

问题描述 投票:0回答:3

我正在尝试弄清楚如何配置 celery 以在消息按配置传递

max_retries
后将其移动到死信队列。

目前正在删除(确认)超出的消息

max_retries

有这样的选择吗?

python celery amazon-sqs
3个回答
2
投票

目前,据我所知,这是不可能的,但很快 Celery 应该能够做到。您已经可以测试我链接到的 Celery 问题中提到的 PR 中的分支,看看它是否按您的预期工作。


0
投票

按照 DejanLekic 的回答,我创建了一个带有本地 SQS 的 dockerized 项目,展示了他想要的解决方案

可以在这里看到https://github.com/galCohen88/celery_sqs_redis_backend


0
投票

在 Celery 版本中

celery = {extras = ["sqs"], version = "^5.3.4"}
你可以坚持下一个方法:

  • 重试使用 raise
    Task.retry(max_retries=5)
    (只是不要在此处传递重试异常参数)
  • 超过所有重试次数后,您将收到 MaxRetriesExceededError
  • MaxRetriesExceededError
    接住
    raise
    requeue=False
    拒绝
    。 最终任务将被重新驱动到 SQS DLQ
© www.soinside.com 2019 - 2024. All rights reserved.