Подтвердить что ты не робот

Установить интервал в 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 каждую минуту.

4b9b3361

Ответ 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 другие альтернативы.