Я искал замены для текущей системы пакетной обработки моих компаний ( java SE + crontab ), так как существует большое количество дублирования java-кода / сценариев оболочки, большинство заданий выполняются на ETL и выполняются очень аналогичные шаги, а также я хочу обеспечить независимость от платформы вместо того, чтобы полагаться на crontab, чтобы быть более точным в нашей роли, текущие шаги по созданию рабочих мест:
- Разработка Java-программы, отвечающей требованиям бизнеса.
- Протестируйте его в производственной среде, подобной окружающей среде, до тех пор, пока она не удовлетворит потребности бизнеса.
- Передайте его на рабочий сервер со сценарием оболочки, который обеспечивает обслуживание файлов, выполнение программ java и процедуры обработки ошибок (избегайте запуска двух процессов с одинаковым именем, поддержки почтового журнала и разработчиков в случае ошибки программы, проверьте выходной файл существование после завершения Java-программы, если это имеет отношение к интерфейсу), и укажите данные повторения (как часто будет запускаться эта программа).
Большая часть той же логики проектируется и развивается в систему, которая содержит общие процедуры, которые эти программы или «интерфейсы» (то есть, как они их там называют) выполняют независимо (обычно с использованием кода, вставленного при копировании, поскольку большинство процедур похожи) , но мне все еще не хватает очень важной части, с которой мне нужна помощь, это касается реализации планировщика, которую я использую, и она мне нужна для удовлетворения одной из этих двух потребностей :
-Я хочу гарантировать, что всякий раз, когда я останавливаю сервер планирования для обновления системы (из-за добавления новых заданий и т. Д.) Или по любой другой причине, эти задания не могут выполняться из-за сбоя системы (например, 3 задания, которые не могли быть запущены в 15:00 из-за сбоя системы), запускаются при восстановлении работы сервера, даже если их соответствующее время планирования прошло.
ИЛИ, если первое, что невозможно, то:
-Мне нужен способ обновления планировщика новыми заданиями, а также обновления файлов JAR, которые предоставляют эти задания, без перезапуска планировщика (вроде OSGi).
Любое из этих условий удовлетворяло бы моим требованиям и завершило бы мой поиск замены, я рассмотрел Quartz, Oddjob (есть планировщик, работающий с этим планировщиком, но его нужно перезапускать каждый раз, когда вы добавляете новые задания / библиотеки, не удовлетворяет моим потребностям) и OSGi, использующий сервер приложений, но я ищу лучшие предложения, если вы также знаете лучшие варианты, они также высоко ценятся.