Задание Cron и NodeJS setInterval для оптимальной производительности

Я создаю простой скрипт nodejs, который обновляет запись DNS на основе моего текущего IP. Скрипт работает нормально, но у меня есть некоторые опасения по поводу того, как его запустить. Проверка моего IP-адреса должна выполняться каждые 5 минут, и я столкнулся с дилеммой.

Следует ли мне использовать узел setInterval или мне следует создать задание cron? Что будет потреблять меньше всего ОЗУ и ЦП? Имейте в виду, что скрипт работает на Raspberry Pi Zero с оперативной памятью 512 МБ и только 1 ядром.

Я знаю, что cron кажется лучшим вариантом, но насколько он лучше? Имеет ли это значение с учетом моих спецификаций?

5
задан 5 June 2017 в 23:21
2 ответа

Преимущества решения cron

  • меньшее потребление памяти в 90% случаев
  • утечки памяти эффективно устраняются
  • код перезагружает все библиотеки каждый раз, поэтому обновления вступают в силу при следующем запуске без дополнительных сложностей

Преимущества решения демона

  • Время загрузки происходит только один раз, поэтому дисковый ввод-вывод и ЦП будут меньше для последующих запусков, поскольку вы не будете анализировать исходный код или загружать все библиотеки
  • , более низкий ЦП и дисковый ввод / вывод для последующих запусков также означает, что есть больше этих ресурсов, доступных для любого вашего основного приложения для Raspberry.
  • Linux должен выгружать неиспользуемую память. Однако это может быть очень медленным в зависимости от вашего хранилища.

Заключение

Я согласен с Александром Т, что cron , вероятно, будет лучше, но если ваше основное приложение чувствительно к фоновым процессам, это может быть лучше использовать демона.

3
ответ дан 3 December 2019 в 01:49

Мое мнение, cron лучше. Я думаю, что лучше запускать сценарий каждые 5 минут, чем запускать сценарий, который запускается каждые 5 минут. Например, если ваш сценарий умирает, что вы будете делать? С cron он просто запустится в следующий раз через 5 минут.

То же самое для памяти и процессора. Я не знаю, как node.js тратит память прямо сейчас, но раньше была проблема с утечкой памяти, и при длительной работе процесса могла возникнуть проблема. Что касается загрузки процессора, я думаю, никакой разницы нет.

0
ответ дан 3 December 2019 в 01:49

Теги

Похожие вопросы