如何让Celery在执行新任务之前等待特定的延迟



我正在使用Celery来并行执行调用第三方API的Python函数。

此API强制要求在每次调用之间等待至少3秒。

有没有一种方法可以指定一个消息代理(RabbitMQ或Redis(来尊重每个工作调用之间的延迟?

在Celery中,您可以使用倒计时方法。看见https://docs.celeryproject.org/en/stable/userguide/calling.html#eta-和倒计时

RabbitMQ有几个不同的选项来支持延迟消息,包括延迟消息交换插件和死字。不幸的是,Celery不支持这两种方法。相反,它所做的是延迟消息的执行,直到达到倒计时时间。消息本身会立即发送给工作者。

将签出https://docs.celeryproject.org/en/stable/userguide/tasks.html#retrying

将重试延迟指定为3秒,您可以将重试次数限制为X,作为任务定义的一部分,如文档中所示。

相关内容

  • 没有找到相关文章

最新更新