基本上是标题所说的。 API和客户端文档指出可以将重试传递给create_task
:
retry (Optional[google.api_core.retry.Retry]): A retry object used to retry requests. If ``None`` is specified, requests will be retried using a default configuration.
但这根本行不通。传递Retry
实例不会执行任何操作,并且仍使用队列级别的设置。例如:
from google.api_core.retry import Retry
from google.cloud.tasks_v2 import CloudTasksClient
client = CloudTasksClient()
retry = Retry(predicate=lambda _: False)
client.create_task('/foo', retry=retry)
这应该创建一个不重试的任务。我尝试了各种不同的配置,并且每次它只使用队列中设置的任何设置。
答案 0 :(得分:0)
您可以传递自定义谓词以重试不同的异常。没有正式的迹象表明此参数阻止重试。您可以查看重试page了解详细信息。
答案 1 :(得分:0)
Google云支持已确认当前不支持任务级重试。。此客户端库的文档不正确。 https://issuetracker.google.com/issues/141314105在此处存在功能请求。
答案 2 :(得分:0)
任务级重试参数在Google App Engine捆绑服务中可用,用于任务排队Task Queues。如果您的应用程序基于GAE(我猜是因为您的问题被标记为google-app-engine
),那么您可以从Cloud Tasks切换到GAE Task Queues。
当然,如果您的应用依赖于Cloud Tasks独有的功能(例如beta HTTP终结点),则捆绑服务将无法正常工作(请参见new features列表,不必担心“ List Queues命令”,因为您始终可以在捆绑服务中使用的配置中看到该信息)。除非有这些,否则在切换到任务队列之前,需要考虑一些事项。
注意事项