#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
работу , которая затем отправит текстовое сообщение в назначенное время. пока все работает идеально …