Описание: У меня есть модуль узла, который анализирует страницы внешнего мониторинга и передает ежедневные данные в дб.Эта задача может занять около 10 минут и запланирована на выполнение один раз в день через node-cron.У меня также есть страница, где вы можете запустить эту задачу вручную с дополнительными аргументами (например, идентификатор или дата).Доступ к нему осуществляется по экспресс-маршруту (скажем, app.post('/manual-task', runTask)
).Задание Cron и HTTP-маршрут являются частью приложения Express Restfull API.
Вопрос: Мне нужен только один запущенный экземпляр этого модуля (фактически это модуль класса), например, кто-то запускает эту задачу на странице, но для этой задачи уже запущено задание cron.Он должен предупредить пользователя, что работа уже выполняется.У меня есть некоторые идеи, но я хотел бы избежать плохих практик:
- pid?
- переменная окружения?
- cron задание как запрос к api вместо прямого выполнения?
- следует ли использовать дочерний процесс, если я запускаю его внутри экспресс-маршрута?
Каков наилучший способ и практика, как этого добиться?
Спасибо