Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何修改/检查google cloud run';失败时的重试限制?_Google Cloud Platform_Google Cloud Storage_Google Cloud Run - Fatal编程技术网

Google cloud platform 如何修改/检查google cloud run';失败时的重试限制?

Google cloud platform 如何修改/检查google cloud run';失败时的重试限制?,google-cloud-platform,google-cloud-storage,google-cloud-run,Google Cloud Platform,Google Cloud Storage,Google Cloud Run,我有一个主题,它在发布时将事件推送到云运行端点,并且我在存储桶上有一个触发器来发布这个主题。云运行中的容器无法处理该事件,它已经重新启动了数百次,我不想在这方面浪费金钱。如何限制在云运行的容器上失败时重试?如果我们查看“我们发现”中提到的最大传递尝试次数的概念(--最大传递尝试次数)。与此相关联的是一个名为死信主题的主题(--死信主题)。这似乎定义了,如果尝试传递发布子消息的次数超过最大次数,则该消息将从与订阅相关联的消息队列中删除,并移动到与死信相关联的主题。如果您为您的环境定义了此选项,那么

我有一个主题,它在发布时将事件推送到云运行端点,并且我在存储桶上有一个触发器来发布这个主题。云运行中的容器无法处理该事件,它已经重新启动了数百次,我不想在这方面浪费金钱。如何限制在云运行的容器上失败时重试?

如果我们查看“我们发现”中提到的最大传递尝试次数的概念(
--最大传递尝试次数
)。与此相关联的是一个名为死信主题的主题(
--死信主题
)。这似乎定义了,如果尝试传递发布子消息的次数超过最大次数,则该消息将从与订阅相关联的消息队列中删除,并移动到与死信相关联的主题。如果您为您的环境定义了此选项,那么您的云运行将只执行有限的次数,之后poision消息将被移动到其他位置。

这个谜题的可能答案可能是以下概念

如果我们阅读有关找到的推送订阅的文档,我们会发现以下内容:

。。。发布/订阅将重试传递,直到消息在 订阅的邮件保留期

这意味着,如果Pub/Sub将消息推送到Cloud Run,而Cloud Run没有通过返回200响应码来确认消息,那么该消息将在“消息保留期”内重新推送。默认情况下,这是7天,但根据文档,可以设置为最小值10分钟。这似乎告诉我,我们可以在10分钟(至少)重试后停止有毒消息


如果消息被推送但未被确认,则不会立即再次推送,而是作为所述退避算法的功能被推送。

--最大传递尝试数的参考中,它表示默认为5。为什么没有发生这种事?嗯。。。呵呵!!!该功能似乎是Pub/Sub功能的“alpha”版本的一部分,截至目前,并非所有人都可以使用。我认为它出现在普通的gcloud文档区域是一个错误。你所说的
这个函数是什么意思?Pub/Sub不应该有这种大缺陷,我不认为我把主题+订阅组合搞砸了。对不起。。。我不清楚。GCP发布/订阅目前没有死信队列处理作为其规范的一部分。这意味着--max delivery attempts和--Dead Letter主题尚不可用。web上描述这些参数的文档似乎是“alpha”文档。如果你愿意,只需在这里发布,我将完全删除这个答案。很抱歉造成混淆。我可以使用最大传送尝试,但仍然不起作用。无论如何,正常的发布/订阅配置怎么可能在错误时进行无限循环呢?一定是这样!非常感谢。进一步思考。。。在我看来,消息的使用者(在我们的例子中是云运行)可能会返回一个200响应代码来使用消息。如果我们定义“返回200意味着不再向我发送消息”。这将把我们是否要再次处理消息的责任推给消费者。是的,但我的问题是,在处理消息的过程中发生了错误。在处理之前无法返回响应,可以吗?无论如何,缩短邮件保留期是有效的!你好,马克,很高兴这个建议奏效了。至于消息处理过程中发生的错误。。。大多数语言都有异常处理程序/try/catch处理程序,可以用来捕获错误并执行一些补救或清理工作。