2024-09-29 01:24:48 发布
网友
我正在阅读关于拒绝和重试任务(linkhere)的详细文档。调用raise self.retry(exc=exc)和简单地调用raise Reject(exc, requeue=True)有什么区别?如果你要在拒绝任务时重新排队,这两者之间有什么区别吗?你为什么要一个接一个?在
raise self.retry(exc=exc)
raise Reject(exc, requeue=True)
这尤其令人困惑,因为文档为Reject发出显式的无限循环警告,而不是针对self.retry()。在
Reject
self.retry()
如果你重试一个任务,像这样
它将只重试3次(默认)。您还可以指定要这样重试的次数。在
最多只能重试10次。在
另一方面,当您拒绝并重新请求它时,您可能会进入无限循环,因为没有最大限制。在
如果要从第三方服务获取数据,可以使用“重试”。这将确保即使第三方服务关闭几秒钟,也能获得数据。在
我没有在任何地方使用Reject。比方说,您想连接到服务器上的端口8000,并且有一些其他进程偶尔会连接到同一个端口。在
8000
现在在您的任务中,您可以尝试连接到端口,如果某个进程正在使用该端口,您可以简单地拒绝它并重新排列它。这将一直持续到另一个进程停止监听8000,而您的任务最终将被执行。在
但你必须确保,你将有机会成功地执行任务,否则你将陷入困境。在
如果你重试一个任务,像这样
它将只重试3次(默认)。您还可以指定要这样重试的次数。在
^{pr2}$最多只能重试10次。在
另一方面,当您拒绝并重新请求它时,您可能会进入无限循环,因为没有最大限制。在
如果要从第三方服务获取数据,可以使用“重试”。这将确保即使第三方服务关闭几秒钟,也能获得数据。在
我没有在任何地方使用
Reject
。比方说,您想连接到服务器上的端口8000
,并且有一些其他进程偶尔会连接到同一个端口。在现在在您的任务中,您可以尝试连接到端口,如果某个进程正在使用该端口,您可以简单地拒绝它并重新排列它。这将一直持续到另一个进程停止监听8000,而您的任务最终将被执行。在
但你必须确保,你将有机会成功地执行任务,否则你将陷入困境。在
相关问题 更多 >
编程相关推荐