python中执行完成前的中间响应-使用其他云函数调用云函数
我有一个云函数调用python中的另一个云函数。我的问题是,当我调用下一个函数时,第一个函数等待执行或超时 关键是这是关于谷歌云功能的。特别是函数超时和最大API调用速率之间的不匹配。我的问题是函数的最大超时(540秒)比我进行所需API调用所需的时间短,并且我不想创建更多触发器 调用第二个函数后,如何使第一个(调用方)完成其工作? 一些示例代码:python中执行完成前的中间响应-使用其他云函数调用云函数,python,google-cloud-functions,Python,Google Cloud Functions,我有一个云函数调用python中的另一个云函数。我的问题是,当我调用下一个函数时,第一个函数等待执行或超时 关键是这是关于谷歌云功能的。特别是函数超时和最大API调用速率之间的不匹配。我的问题是函数的最大超时(540秒)比我进行所需API调用所需的时间短,并且我不想创建更多触发器 调用第二个函数后,如何使第一个(调用方)完成其工作? 一些示例代码: #main.py #url:这个特殊的云函数 #函数由包含{“previous_tin_index:0}的post请求启动 导入请求 导入时间 导入
#main.py
#url:这个特殊的云函数
#函数由包含{“previous_tin_index:0}的post请求启动
导入请求
导入时间
导入日志记录
最终锡指数=100
def eat_垃圾邮件(请求):
已开始吃\u垃圾邮件=time.time()
spam_json=request.get_json()
spam_to_eat=spam_json[“以前的索引”]
对于范围内的垃圾邮件(垃圾邮件到食物):
时间。睡眠(5)
上一个索引+=1
logging.info(“我讨厌垃圾邮件…”)
已完成\u上一个\u垃圾邮件\u time=time.time()-已开始\u吃\u垃圾邮件
如果完成\u上一次\u垃圾邮件\u时间>=10:
logging.info(“让它停止!”)
post(“这个特定的云函数”,json={“previous_tinu_index”:previous_tinu_index})
返回“200”
编辑:我知道固有的问题是函数从未达到返回值。我想知道除了将代码重写为Javascript承诺之外,这是否可以修复
另外,我查看了,但是在特定的示例中似乎缺少python。这可能会解决您的问题
def f1(x):
print('f1', x)
return f2, (x+1,)
def f2(x):
print('f2', x)
return f1, (x+1,)
f, args = f1, (0,)
while True:
f, args = f(*args)
这是我的功劳
虽然我相信你的问题在于工作流程。您返回的是一个值,但问题是您在代码中从未达到该点。假设有foo1(),在foo1()内调用foo2()。然后开始执行foo()2,但在返回foo1()并继续执行直到到达return命令之前,foo1()已超时
如果您的问题没有解决,那么问题可能出现在第二个功能上,因此可能需要检查此功能以解决您的问题
请告诉我这是否有用。这可能会解决您的问题
def f1(x):
print('f1', x)
return f2, (x+1,)
def f2(x):
print('f2', x)
return f1, (x+1,)
f, args = f1, (0,)
while True:
f, args = f(*args)
这是我的功劳
虽然我相信你的问题在于工作流程。您返回的是一个值,但问题是您在代码中从未达到该点。假设有foo1(),在foo1()内调用foo2()。然后开始执行foo()2,但在返回foo1()并继续执行直到到达return命令之前,foo1()已超时
如果您的问题没有解决,那么问题可能出现在第二个功能上,因此可能需要检查此功能以解决您的问题
请让我知道这是否有帮助。很抱歉回复太晚,谢谢你,乔治!问题很清楚,但是,我的用例需要执行多个函数。这是因为我调用的API配额有限,超过了函数的超时时间。另外,我不想做多个触发器。我只是想知道这在Python中是否很容易实现。有趣的想法,返回一个函数!谢谢你的迟到的回复,谢谢你,乔治!问题很清楚,但是,我的用例需要执行多个函数。这是因为我调用的API配额有限,超过了函数的超时时间。另外,我不想做多个触发器。我只是想知道这在Python中是否很容易实现。有趣的想法,返回一个函数!谢谢你,乔治