tengo esta funcion:
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 < 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) lo que se supone que debe hacer es ejecutar un cronjob cada 1 minuto, que obtiene todos los resultados de la tabla de mis clients . Luego recorro cada resultado, y si es la hora actual y coincide con la hora en la base de datos, entonces envía el mensaje. sin embargo, ejecuta el primer cronjob cada minuto del día, y luego digamos que se supone que mi etxt se activa a las 9:15, entonces no puede llegar lo suficientemente rápido, porque todavía está pasando por la primera iteración del cronjob . Esa es mi conjetura, pero no estoy 100% seguro y no puedo entender por qué. ¿Alguien puede ayudar?
Lo descubrí haciendo esto:
var getTexts = new cronJob( '45 * * * * *', function(){ lo que hace es ejecutar el cronjob cada 45 seconds , que luego enviará el mensaje de texto a la hora designada. funciona perfecto, hasta ahora...