Я разделил день на 6 частей, и каждая часть дня имеет свой интервал.Моя функция должна работать в этих интервалах.Например, интервал с 12:00 до 15:00 составляет 10 минут, поэтому функция должна вызываться каждые 10 минут, а с 15:00 до 20:00 - 2 минуты, поэтому с 15:01 необходимо изменить интервал с 10 до 2 минут.
Нужно предложение, как построить этот тип таймера.Я могу получить интервалы из mongoDB или локального файла JSON.Я думаю, мне нужно проверить, который час и получить интервал (из файла mongoDB или json) на это время, а затем передать его в планировщик заданий setInterval()
или Cron .Пробовал таким образом, но каждый раз, когда я пропускаю новый интервал, последние интервалы все еще работают: если интервал равен 2 мин, а я изменяю его на 5 мин, функция вызывается дважды: каждые 2 мин и каждые 5 мин как в setInterval()
, так и Крон
const test = (min) => {
console.log(min);
var intervale = setInterval(() => {
console.log('firing', min, new Date());
}, min);
}
const test = (min) => {
cron.schedule(`0 */${min} * * * *`, () => {
console.log('firing cron', new Date())
});
}
спасибо