Установить интервал в Node.js против задания Cron?
Я изучаю node.js и просто настраиваю пустую виртуальную машину Linux и устанавливаю node.
Я выполняю функцию постоянно каждую минуту
var request = require('request')
var minutes = 1, the_interval = minutes * 60 * 1000
setInterval(function() {
// Run code
})
}, the_interval);
И рассмотрим возможность добавления некоторых других функций, основанных на текущем времени. - (например, запустить функцию, если dateTime = воскресенье в полдень)
Мой вопрос в том, есть ли недостатки для запуска такой настройки, по сравнению с традиционным заданием cron?
Имейте в виду, что я должен запускать эту функцию в node каждую минуту.
Ответы
Ответ 1
Это зависит от того, насколько строго вы должны придерживаться этого минутного интервала, и если ваш node script делает что-то еще. Если единственное, что делает script, то запускается что-то каждый X, я бы просто подумал о том, чтобы вместо этого использовать node script do X и планировать его с помощью соответствующего планировщика операционной системы.
Если вы создаете и запускаете это в node, вам нужно управлять жизненным циклом приложения и убедиться, что он работает, восстановить из-за сбоев и т.д. Просто выполнение раз в минуту через CRON намного более прямолинейно и, на мой взгляд, больше соответствует Unix Philosophy.
Ответ 2
Мой вопрос в том, есть ли недостатки для запуска такой настройки, по сравнению с традиционным заданием cron?
Пока //run the code
не связан с процессором, как криптография, придерживайтесь процесса 1 node, по крайней мере, для запуска. Поскольку вам требуется request
, я думаю, вы можете сделать HTTP-запрос, который является IO, что означает, что это будет нормально.
Просто проще иметь 1 вещь для установки/запуска/запуска/остановки/обновления/подключения-отладчика, чем для работы с сервером приложений, а также для отдельного процесса, управляемого cron. Для того, что стоит, сохранение его в javascript делает его переносимым на разных платформах, хотя это, вероятно, не имеет большого значения.
Существует также удобный node-cron модуль, который я использовал, а также примерно один bazillion другие альтернативы.