芹菜:拒绝和再吃有什么区别?

2024-09-29 01:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读关于拒绝和重试任务(linkhere)的详细文档。调用raise self.retry(exc=exc)和简单地调用raise Reject(exc, requeue=True)有什么区别?如果你要在拒绝任务时重新排队,这两者之间有什么区别吗?你为什么要一个接一个?在

这尤其令人困惑,因为文档为Reject发出显式的无限循环警告,而不是针对self.retry()。在


Tags: 文档selftrue警告排队excraiseretry
1条回答
网友
1楼 · 发布于 2024-09-29 01:24:48

如果你重试一个任务,像这样

raise self.retry(exc=exc)

它将只重试3次(默认)。您还可以指定要这样重试的次数。在

^{pr2}$

最多只能重试10次。在

另一方面,当您拒绝并重新请求它时,您可能会进入无限循环,因为没有最大限制。在

如果要从第三方服务获取数据,可以使用“重试”。这将确保即使第三方服务关闭几秒钟,也能获得数据。在

我没有在任何地方使用Reject。比方说,您想连接到服务器上的端口8000,并且有一些其他进程偶尔会连接到同一个端口。在

现在在您的任务中,您可以尝试连接到端口,如果某个进程正在使用该端口,您可以简单地拒绝它并重新排列它。这将一直持续到另一个进程停止监听8000,而您的任务最终将被执行。在

但你必须确保,你将有机会成功地执行任务,否则你将陷入困境。在

相关问题 更多 >