Если второй вариант - это просто cron, который отправляет HTTP-запрос к вашему сервису, это довольно эквивалентно Если вместо этого решение упаковано в виде сценария, а cron запускает этот сценарий напрямую, у него есть несколько компромиссов, в основном основанных на операциях:
Использование внутренней функции запроса setTimeout или
Это означает, что вам нужно запустить долго работающую службу и поддерживать ее в рабочем состоянии. Такие вещи, как утечки памяти могут стать проблемой.
Внешний скрипт CRON, который запускает функцию запросов в Node.js?
Это стратегия, которую google GCP использует для своего предложения cron . Если функция просто пингует веб-URL, решения довольно эквивалентны.
IMO, Самая большая проблема с обоими из них заключается в том, чтобы осторожно связать фоновую (asyn c) рабочую нагрузку с онлайн-нагрузкой. Если ваша служба обслуживает живые HTTP-запросы в реальном времени, но также выполняет эти фоновые рабочие нагрузки, которые отнимают ресурсы у обслуживания синхронных HTTP-запросов. Если это две принципиально разные рабочие нагрузки, то также имеет смысл разделить их для целей масштабирования.
Я попал в ситуацию, когда мониторинг фактически сообщил об этом решении. Компания использовала Prometheus и не имела установленного шлюза pu sh. Таким образом, решение на основе cron имело видимость 0 metri c, но версия службы была тривиальной для добавления метрик / предупреждений.