Запуск функции каждую минуту и отправка сообщения

#javascript #node.js #cron #twilio

Вопрос:

У меня есть эта функция:

 var getTexts = new cronJob( '*/1 * * * *', function(){  var viewConformationEmails = "select * from clients";  ibmdb.open(ibmdbconn, function(err, conn) {  if (err) return console.log(err);  conn.query(viewConformationEmails, function(err, rows) {  if (err) {  console.log(err);  } else if (!err) {  console.log("Success")  }     for (var i = 0; i lt; rows.length; i  ) {  // arrayOfNumbers.push(rows[i].NAME)  // arrayOfNumbers.push(rows[i].PHONE_NUMBER)  // arrayOfNumbers.push(rows[i].HOUR)  // arrayOfNumbers.push(rows[i].MINUTE)  var minute = rows[i].MINUTE;  var hour = rows[i].HOUR;  console.log(rows[i])  var stringg = rows[i]["MINUTE"]   " "   rows[i]["HOUR"]   " * "   "* "   "*"    var textJob = new cronJob( stringg, function(){  client.messages.create( { to:'xxx', from:'yyy', body:'Hello! Hope you’re having a good day!' }, function( err, data ) {});  }, null, true);  }   conn.close(function() {  });  });  }); }, null, true)  

что он должен делать, так это запускать cronjob каждые 1 минуту, который получает все результаты из моей clients таблицы. Затем я просматриваю каждый результат, и если это текущее время и оно вычисляет время в базе данных, то оно отправляет сообщение. тем не менее, он запускает первое задание в каждую минуту дня, а затем, допустим, мой etxt должен отправляться в 9:15, тогда он не может добраться туда достаточно быстро, потому что он все еще проходит первую итерацию задания. Это мое предположение, но я не уверен на 100% и не могу понять почему. Кто-нибудь может помочь?

Ответ №1:

Понял это, сделав это:

 var getTexts = new cronJob( '45 * * * * *', function(){  

что он делает, так это запускает каждую 45 seconds работу , которая затем отправит текстовое сообщение в назначенное время. пока все работает идеально …