Tengo esto:
cronJob = require('cron').CronJob; var getTexts = new cronJob( '13 12 * * *', 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") } var arrayOfNumbers = [] for (var i = 0; i < rows.length; i++) { arrayOfNumbers.push(rows[i].PHONE_NUMBER) } console.log("arrayOfNumbers: ", arrayOfNumbers) conn.close(function() { }); }); }); })
Lo que estoy haciendo aquí es configurar un cronjob
para las 12:13 p. m. de hoy, que ya pasó. Y dentro de esa función cronjob, voy a mi base de datos y obtengo los números de teléfono, los coloco en una matriz y luego intento registrar la matriz.
Sin embargo, a las 12:13 no pasó. También probé esto con twillo
, y funcionó. pero no puedo averiguar qué estoy haciendo mal, o incluso si puedo hacer lo que estoy buscando. Es posible
Según la documentación de cron
, los parámetros de rango son:
Segundos: 0-59
Minutos: 0-59
Horas: 0-23
Día del mes: 1-31
Meses: 0-11 (enero-diciembre)
Día de la semana: 0-6 (domingo-sábado)
Entonces, si desea ejecutar programar su tarea a las 12:13 p. m., debe configurar sus parámetros de esta manera:
const CronJob = require('cron').CronJob; console.log('Before job instantiation'); const job = new CronJob('* 13 12 * * *', function() { const now = new Date(); console.log('Task runs at', now); }); console.log('After job instantiation'); job.start();
Nota: configurar este tiempo sin especificar el parámetro Seconds
ejecutará la tarea cada segundo entre las 12:13 p. m. y las 12:14 p. m. internamente. Entonces, si desea ejecutar su tarea una vez en un momento específico, defina el parámetro Seconds
:
const job = new CronJob('0 13 12 * * *', function() { // rest of the codes ... }