Cron использовался десятилетиями и является достаточно надежным и надежным;если ваш cron ненадежен, я бы посоветовал провести строгое обсуждение с вашим поставщиком ОС.Кроме того, в документации MongoDB говорится о заданиях cron (например, google "site: mongodb.org cron"), поэтому, предположительно, следует ожидать выполнения заданий cron с MongoDB.
Тем не менее, если у вас уже есть кучаинфраструктуры, настроенной для другой системы планирования, тогда, вероятно, нет смысла использовать cron для MongoDB и что-то еще для других задач.
В любом случае, вы, вероятно, захотите использовать простую систему блокировки файлов PID, еслиВаши задания cron могут занимать достаточно много времени для перекрытия, и вы хотите, чтобы за один раз выполнялось только одно:
- Задание cron ищет файл PID при запуске.
- Если оно находитфайл, затем он читает PID старого задания из файла и проверяет, все ли еще работает.
- Если старый работает, то новый будет жаловаться и выходить.
- Если старый не работает, то новый продолжит работу.
- Когда новое задание решает, что его можно запустить, оно записывает свой PID в файл PID.
- Когда новое задание завершается, оно удаляет файл PID непосредственно перед выходом (илииспользуя обработчик
atexit
или аналогичную функцию, поддерживаемую вашей средой).