在时间限制部分下的Google Cloud Functions文档中,它表示最长持续时间应为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')
};
这是一个错误,还是故意的?
答案 0 :(得分:2)
1)我还没有看到6秒的HTTP超时,你能提供重现的任何步骤吗?
2)云功能当前(2018年2月)如果在飞行中仍然存在异步任务,则在超时后强制停止功能; CPU限制下降,但该功能可能会运行(未定义)时间。最初的想法是在停止功能之前让小清理/后台工作完成。 但是,我们可能会更改此行为以在超时时停止该功能,因为当前行为可能会给开发人员造成混淆,因为它无法保证或记录多长时间功能可以运行,在什么情况下运行。