我在使用setInterval函數連續調用相同的lambda函數時遇到了困難。如何在aws lambda函數中使用setInterval
lambda函數
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;
function funUpdateCommand(event,context,callback){
var mongoUrl='mongodb://**.**.**.**:*****/DBname';
// var mongoUrl='mongodb://127.0.0.1:27017/DBname';
MongoClient.connect(mongoUrl, function(err, db) {
if(err) throw err;
var collection = db.collection('device');
var interval = setInterval(function() {
\t collection.find({"deviceCommand.command":"getAudio","deviceCommand.timestamp":{ $lte: new Date((new Date)*1 - 60000*2)}}).toArray(function(err, results) {
\t \t if(err){
\t \t \t console.log(err);
\t \t }else{
\t \t \t for(var i=0;i<results.length;i++){
\t \t \t \t collection.update({_id:results[i]._id},{$set:{"deviceCommand.command":" "}},function(err, results) {
\t \t \t \t \t \t \t
\t \t \t \t \t }); \t
\t \t \t } \t
\t \t }
\t });
}, 5000);
});
context.succeed("Successfully uploaded");
}
exports.handler=funUpdateCommand;
我想更新一下我的MongoDB的文件,我需要運行AWS lambda函數作爲一個連續的後臺作業,但使用的setInterval時它會返回超時錯誤。
我該如何使用setInterval連續運行我的aws lambda函數?
嗨taskiner,使用CloudWatch Events觸發aws lambda函數,現在它每隔1分鐘調用一次,但我需要每隔30秒調度一次!那可能嗎?如果是的話如何? – Sabreena
不幸的是CloudWatch Event不支持二級精度。 – taskiner
好的,謝謝taskiner :-) – Sabreena