Комментарии 10
Какой знакомый путь :-) Хотя у нас в Badoo/Bumble в результате выработались собственные решения для управлениях графами из задач.
возможно, это потому что приходится разбираться с проблемами, для которых еще нет стабильных решений в opensource
А кластеризованный планировщик на systemd тоже, говорят, есть. Называется fleet.
А кто-то пробовал с Airflow на Prefect перейти? Есть плюсы?
Cron гарантирует запуск задачи строго один раз в указанный в расписании момент
Дальше читать не стал, извините.
Но сервер с Cron'ом состоит из одного узла. Сервер может выйти из строя в момент выполнения задачи или, что вероятнее, его просто отключили для проведения каких-либо профилактических работ. А у Cron'а нет механизма резервирования состояния запущенных задач. После восстановления сервера задача, выполнение которой прервалось, не будет перезапущена. Остается только ждать следующего запуска по расписанию или запускать руками
Потому что крон не для этого. Либо писать долгоживущий сервис-демон для отчетов со всей этой логикой, либо, как более простое решение, — systemd timers. Очень странно, что никто про них не пишет.
Для распределённых отчетов же — да, нужны распределенные планировщики вроде того же airflow, но загвоздка в том, что он только-только подползает к такой реализации, которой реально не страшно пользоваться )))
Примерно" означает, что в момент предполагаемого запуска задача может быть запущена более одного раза или не запущена вообще. Такое ограничение обязывает делать задачи идемпотентными.
Ради справедливости — если использовать обычный cron даже на одном узле, то все эти требования есть. Просто они неявные и их несоблюдение не так очевидно больно, хотя всегда есть граничные случаи, когда они «стреляют»
Связка Airflow + KubernetesPodOperator + Kubernetes подходит нам по функциональности и надёжности планирования и запуска задач, позволяя спать ночами спокойно, зная, что в это время в меру дотошный и исполнительный Airflow проконтролирует выполнение всей необходимой работы на мощностях Kubernetes, который может быть запущен как и на соседней серверной стойке, так и в другом дата-центре или на стороне облачного провайдера.
Могу только поулыбаться. Запуск всего этого хозяйства в кубернетес на самом деле ничего не гарантирует. Да, тут надежность и гарантии более железобетонные, чем в случае запуска крона на отдельной виртуалке, да и кубер предлагает более нативные и интересные способы мониторинга и решения проблем. Но гарантий запуска строго, скажем, в определенное время на кубере нет и быть не может. Просто в силу физических ограничений.
Когда Cron подводит