Запускать функцию с заданным интервалом только в определенное время суток.
В настоящее время я запускаю функцию с регулярным интервалом круглосуточно.
setInterval( function(){ do_this(); } , 1000*60);
К сожалению, это не совсем то, что я хочу. Я хотел бы, чтобы эта функция запускалась с установленным регулярным интервалом только с утра 9:00 до 18:00. Функция не должна работать вне этих часов. Как это можно сделать в node.js? Есть ли удобные модули или функции для использования?
3 ответа
Вы можете просто проверить, находится ли текущее время в требуемом диапазоне времени или нет, и использовать его, чтобы решить, выполнять вашу функцию или нет.
setInterval( function(){
var hour = new Date().getHours();
if (hour >= 9 && hour < 18) {
do_this();
}
} , 1000*60);
Это будет запускать вашу функцию каждую минуту с 9:00 до 18:00.
Есть ли какая-то конкретная структура, с которой вы работаете?
Если мы настолько абстрактны, как вы, вы, скорее всего, захотите использовать что-то вроде cronjob. Для этого есть модуль: https://github.com/ncb000gt/node-cron
Шаблон для того, что вы хотите:
00 00 9-18 * * *
- Это будет выполняться каждый час между 9-18 и ровно от 0 минут до 0 секунд.
Проверьте текущий час внутри вашего do_this
функция.
function do_this(){
var now = new Date();
var currentHour = now.getHours();
if(currentHour < 9 && currentHour > 18) return;
//your code
}
setInterval( function(){ do_this(); } , 1000*60);