Сделать запланированные задачи с помощью node-schedule (используя навсегда) после перезапуска

Я хочу разработать программу node.js, которая будет выполняться в определенное время с помощью планировщика заданий (node-schedule). Эта программа работает в фоновом режиме с использованием навсегда (модуль node.js). Вот содержимое моего app.js:

var schedule = require('node-schedule');

~ ~

var id =  request.body.id;
var scheduled = schedule.scheduledJobs;
if(scheduled[id]!=null){ 
//Tasks
}
else{ 
 scheduled[id].cancel;
 delete scheduled[id];
}

Но если app.js по какой-либо причине убит, объект schedule удаляется. а иногда app.js перезапускается навсегда. как я могу обрабатывать объекты расписания узла?


person leeyc    schedule 05.08.2015    source источник
comment
Если мне нужно изменить свой код... мне также нужно перезапустить app.js... после этого я не могу получить информацию об объекте node-schedule.   -  person leeyc    schedule 05.08.2015
comment
Вам нужно переназначить в начале вашего app.js все задачи, которые были запланированы ранее   -  person Rox    schedule 05.08.2015


Ответы (1)


Недавно я столкнулся с аналогичной проблемой, и есть два решения: 1. Используйте настоящий cron 2. Используйте базу данных.

Я решил свою проблему с помощью базы данных. Каждый раз, когда вы создаете какое-то событие, сохраняйте его в базу данных. В вашем файле app.js, когда приложение запускается, функция make читает базу данных и соответственно создает запланированные события.

Первый вариант лучше, если у вас нет динамических задач, вы не создаете новые задачи или если они всегда одинаковые.

person King_Z    schedule 19.03.2017