在Google云功能文档中,在"时间限制"部分下,它说最大持续时间应为540秒。之后,云功能应终止。
"最大函数持续时间 - 函数可以在强行终止 - 540秒" "之前运行的最大时间
我已经在HTTP-Triggers上进行了一些测试,并注意到,如果在6秒内未回复响应,则函数终止。
我还进行了另一项测试,该测试立即发回响应,并异步每分钟记录一条消息。
目前40分钟后,它仍在记录一条消息。
这是代码段:
function recursiveCallback (n) {
console.log(`MarkTest: Callback Pass ${n}`);
setTimeout(function () {
recursiveCallback(n + 1);
}, 1000 * 60);
}
exports.test_func = function (req, resp, callback) {
console.log('Sending Response. response');
resp.send('');
console.log('Response Sent.');
console.log('Starting Async Polling');
recursiveCallback(0);
console.log('test_func End')
};
这是一个错误,还是故意的?
1)我还没有看到6秒的http超时,您可以提供任何复制步骤吗?
2)当前(2018年2月),如果飞行中仍然存在异步任务,则云功能(2018年2月)不会强行停止功能;CPU节流效果向下,但该功能可能会在(未定义)的时间内运行。最初的想法是在停止功能之前让较小的清理/背景工作完成。但是,我们很可能会更改此行为以在超时上停止函数,因为当前行为可能会给开发人员造成混乱,因为它无法保证或记录该功能可以运行多长时间,并且在下面什么情况。