在AppEngine

时间:2017-09-05 12:17:03

标签: google-app-engine

我发现,就像我之前的许多人一样,AppEngine有60秒的执行截止日期。

Process terminated because the request deadline was exceeded.

我的用例与我见过的其他用例有点不同。我有一个网页表单,可以让你移动一个切换开关;有一个页面,你可以GET表示这个切换状态为1或0.一个Raspberry Pi每10秒点击一次这个页面,并使我的前门灯光与切换的状态相匹配。我正在通过HTTP进行所有这些操作(Pi在4G调制解调器上,防火墙在其他端口上流量)。

我今天早些时候想到了“有状态改变”的处理程序。 Pi会在第一次启动时获得并匹配状态,但之后它会遇到一个(通常非常慢的加载)处理程序,它执行类似这样的操作:

iterations = 0
current_state = get_state()
while iterations < 600
    if get_state != current_state:
        return "Change!"
    iterations = iterations + 1
    time.sleep(1)
return "No change"

这会每隔十分钟将我的4G开销减少到一个请求,但是 - 如果状态发生变化 - 页面会立即完成加载,我可以立即采取行动。如果没有任何改变,我会再次调用该过程 - 但现在我每10分钟一次,而不是每10秒钟一次。

即使有50s的上限,我也可以构建它,这将节省一些开销+改善我的响应延迟。但是,我是否缺少关于截止日期如何工作的事情,这会让我在GAE中做更长时间的事情?

1 个答案:

答案 0 :(得分:0)

切换到灵活的环境可以达到60分钟的超时时间。来自Comparing high-level features

enter image description here