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云函数从发布/订阅中拉取引发异常-超过截止日期_Google Cloud Platform_Google Cloud Functions_Google Cloud Pubsub - Fatal编程技术网

Google cloud platform Google云函数从发布/订阅中拉取引发异常-超过截止日期

Google cloud platform Google云函数从发布/订阅中拉取引发异常-超过截止日期,google-cloud-platform,google-cloud-functions,google-cloud-pubsub,Google Cloud Platform,Google Cloud Functions,Google Cloud Pubsub,我在Python3.7中有一个GoogleCloud函数,它以同步拉模式读取发布/订阅 运行fine 1/hour 24小时后,它抛出以下异常堆栈跟踪: 回溯(最近一次调用):文件 “/env/local/lib/python3.7/site packages/google/api_core/grpc_helpers.py”, 第57行,出现错误\u重新映射\u可调用 返回可调用的文件“/env/local/lib/python3.7/site packages/grpc/_channel.py

我在Python3.7中有一个GoogleCloud函数,它以同步拉模式读取发布/订阅

运行fine 1/hour 24小时后,它抛出以下异常堆栈跟踪:

回溯(最近一次调用):文件
“/env/local/lib/python3.7/site packages/google/api_core/grpc_helpers.py”,
第57行,出现错误\u重新映射\u可调用
返回可调用的文件“/env/local/lib/python3.7/site packages/grpc/_channel.py”,第824行,
中呼叫
返回文件“/env/local/lib/python3.7/site packages/grpc/_channel.py”,行
726,一元响应中的阻塞

raise _InactiveRpcError(state)grpc._channel._InactiveRpcError:当订阅中没有要读取的消息时,客户端会引发此异常。它是最新PubSub library版本>=1.0.0中的一个。如有必要,您可以降级到不存在此问题的版本0.45.0

但是,作为一种解决方法,您可以捕获DeadlineExceeded异常并重试该操作。此外,基于,这里有一个小monkeypatch,您可以将其添加到运行的代码中,这可能有助于获得与0.45.0版相同的行为

从google.cloud.pubsub_v1.gapic导入订户_客户端_配置为sub_配置
sub_config.config['interfaces']['google.pubsub.v1.Subscriber']['retry_params']['messaging']['initial_rpc_timeout_millis']=25000

最后,请记住,在使用同步拉取时,这反过来可能会导致更高的延迟拉取请求(以及超过死线的错误)。虽然,如果延迟对于应用程序来说是至关重要的,但是您可以考虑使用

它似乎是指。作为一种解决方法,我建议捕获异常并重试该操作。嗯,这似乎很奇怪。文档中说pull可能返回零条消息,所以我不希望在这种情况下出现异常。是的,PubSub库中似乎存在问题。显然,在版本
v0.45.0
中,不会发生错误。我的猜测是,这个问题与立即返回的行为有关。此标志已被弃用,且行为设置为等效于
return\u instally=False
,因此客户端在等待新消息时保持连接处于活动状态,直到基础grpc截止日期引发异常Nah,gotcha。我考虑立即使用return,因为我只想获取当前可用的所有内容,但实际上我没有指定它,这应该是=False场景。但也许我应该设置超时,因为我让它默认。这很难,因为Python文档确实留下了很多猜测。谢谢,@TlaquetzalI,我很高兴能帮上忙!