如果我有一个谷歌云功能,我部署了一个最大超时(让我们说540s
),我怎么能在它超时之前运行一些东西?例如,在超时前5秒,我想运行自定义行吗?例如:
def run_something(data, context):
print('Function running...')
time.sleep(600)
if time_left <= 5_seconds:
print("Function is about to time out in 5 seconds")
如果您想要跟踪超时的请求以进行进一步调查,您可以在Stackdriver Logging中过滤云函数的超时请求.
请注意,超时在Stackdriver中不会作为错误报告,但是您可以设置超时日志条目的过滤器。从Google Cloud Platform控制台,转到Stackdriver Logging并构建一个过滤器,如下所示以获取超时的请求:
resource.type="cloud_function"
resource.labels.function_name="[YOUR_FUNCTION_NAME_HERE]"
"finished with status: 'timeout'"
time.sleep(535)
print('do something')
好奇等待的目的是什么?当然有更好的方法来处理这个问题,因为你为接收请求和发送响应之间的时间长度付费。
你也可以计算它运行了多长时间来允许它做这样的工作:
start_time = time.time()
print('do_work')
while time.time() - start_time > 535:
time.sleep(1)