Запустите задание cron в nodejs

0

У меня есть эта простая функция задания cron:

var job = new cronJob('* * * * * *', function () {
  // do some form of stuffs...
 }, function () {
     console.log('DelCron Job finished.');
 }, true, 'Asia/Calcutta');

Это будет выполняться каждую секунду.

Мой вопрос:

В базе данных mysql у меня есть одна таблица с именем "profsms" в этой таблице, у меня есть поле scheduleTime.

Если запланированоTime = 18/01/2018 10.00AM

Я хочу запустить эту работу cron к тому времени динамически, возможно ли это?

  • 0
    что вы подразумеваете под динамически? что произойдет, если scheduleTime <{your_time} ИЛИ scheduleTime> {your_time}
  • 0
    Я хочу, чтобы моя работа cron работала по расписанию.
Теги:
cron

1 ответ

0

Вам просто нужно изменить время на строку расписания cronjob.

Предполагая, что строка будет выглядеть так

# ┌────────────── second (optional)
# │ ┌──────────── minute
# │ │ ┌────────── hour
# │ │ │ ┌──────── day of month
# │ │ │ │ ┌────── month
# │ │ │ │ │ ┌──── year
# │ │ │ │ │ │
# │ │ │ │ │ │
# * * * * * *

Поскольку у вас есть (dd/mm/yyyy hour.minute(AM/PM)) (18/01/2018 10.00AM)

const convertTimeToCronJobString = (time) => {
    let retString = '';
    const dmy = time.split(' ')[0];
    const d = dmy.split('/')[0];
    const m = dmy.split('/')[1];
    const y = dmy.split('/')[2];

    const hm = time.split(' ')[1];
    const h = hm.split(';')[0];
    let min = '';
    if (hm.split(';')[1].indexOf('AM') > -1) { // AM
      min = hm.split(';')[1].replace('AM','');
    } else if (hm.split(';')[1].indexOf('AM') > -1) { // PM
      min = hm.split(';')[1].replace('PM','');
      min = String(Number(min) + 12);
    }
    return '0 ${min} ${h} ${d} ${m} ${y}' // you want to start at 0th secound
}

Теперь вам просто нужно отправить scheduledTime в эту функцию, и это вернет вам cronjobString. Используйте эту строку для планирования вашей задачи.

  • 0
    как отправить мой scheduleTime? Можете ли вы объяснить это будет полезно для меня :)
  • 0
    Вы должны будете использовать клиент MySQL для узла. А затем прочитайте таблицу, в которой есть scheduleTime! Это может быть полезно github.com/mysqljs/mysql

Ещё вопросы

Сообщество Overcoder
Наверх
Меню