当前位置:  开发笔记 > 编程语言 > 正文

为什么AWS Lambda功能总是超时?

如何解决《为什么AWSLambda功能总是超时?》经验,为你挑选了1个好方法。



1> wjordan..:

你有一个错字:

context.callbackWaitsForEmtpyEventLoop = false;

应该:

context.callbackWaitsForEmptyEventLoop = false;

以下是有关callbackWaitsForEmptyEventLoop行为的文档说明:

callbackWaitsForEmptyEventLoop

默认值为true.此属性仅用于修改回调的默认行为.默认情况下,回调将等到Node.js运行时事件循环为空,然后冻结进程并将结果返回给调用者.您可以将此属性设置为false,以便在调用回调后立即请求AWS Lambda冻结进程,即使事件循环中存在事件也是如此.AWS Lambda将冻结进程,任何状态数据和Node.js事件循环中的事件(当下一次调用Lambda函数并且AWS Lambda选择使用冻结进程时,处理事件循环中的任何剩余事件).有关回调的更多信息,请参阅使用回调参数.

最小的例子:

// Times out due to typo
exports.function1 = (event, context, callback) => {
    setInterval(() => console.log('Long wait'), 100000);
    context.callbackWaitsForEmtpyEventLoop = false;
    callback(null, 'Hello from Lambda');
};

// Returns successfully
exports.function2 = (event, context, callback) => {
    setInterval(() => console.log('Long wait'), 100000);
    context.callbackWaitsForEmptyEventLoop = false;
    callback(null, 'Hello from Lambda');
};


这是一个很好的'JavaScript,一种简单的错别字会让你浪费生命时间的语言.打字稿是你的朋友.
一百万年来,我永远也不会发现这种错别字;即使我试图打印该值,我也会直接复制变量名。
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有