gpt4 book ai didi

node.js - 如何在有限的时间内使用AWS Lambda作为后台任务运行?

转载 作者:太空宇宙 更新时间:2023-11-04 02:45:01 25 4
gpt4 key购买 nike

我要执行的操作是触发lambda在有限的时间内作为后台运行(少于有限的lambda超时)。我使用setInterval和setTimeout,但是它们不能与async / await一起正常工作。请注意,如果在本地作为节点应用程序运行,该代码将起作用。我的代码如下:

const mqtt = require('async-mqtt');

module.exports.startPolling = function(event, context, callback) {
context.callbackWaitsForEmptyEventLoop = false
let runInterval = setInterval( async() => {
await run("tram", "#");
}, 1000);
setTimeout(() => { clearInterval(runInterval)}, 5000);
}


const run = async(mode, route) => {
console.log("Starting");
try {
client = await mqtt.connectAsync('mqtts://mqtt.hsl.fi:8883/');
await client.subscribe(`/hfp/v2/journey/+/vp/${mode}/${route}`);
response = await getMessageAsync(client, "message");
console.log(response.toString());
await client.end();
console.log("Done");
} catch (e){
console.log(e.stack);
process.exit();
}
}

const getMessageAsync = (client, ...args) => {
return new Promise((resolve, reject) => {
client.on(...args, (topic, message) => {
resolve(message);
});
});
}

最佳答案

AWS Lambda函数具有当前限制,只能在超时之前最多执行一个进程15分钟,您可以查看AWS BATCH

关于node.js - 如何在有限的时间内使用AWS Lambda作为后台任务运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58778754/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com