Хорошая альтернатива crontab для пакетных программ Java? - PullRequest
5 голосов
/ 10 июля 2011

Я искал замены для текущей системы пакетной обработки моих компаний ( java SE + crontab ), так как существует большое количество дублирования java-кода / сценариев оболочки, большинство заданий выполняются на ETL и выполняются очень аналогичные шаги, а также я хочу обеспечить независимость от платформы вместо того, чтобы полагаться на crontab, чтобы быть более точным в нашей роли, текущие шаги по созданию рабочих мест:

  1. Разработка Java-программы, отвечающей требованиям бизнеса.
  2. Протестируйте его в производственной среде, подобной окружающей среде, до тех пор, пока она не удовлетворит потребности бизнеса.
  3. Передайте его на рабочий сервер со сценарием оболочки, который обеспечивает обслуживание файлов, выполнение программ java и процедуры обработки ошибок (избегайте запуска двух процессов с одинаковым именем, поддержки почтового журнала и разработчиков в случае ошибки программы, проверьте выходной файл существование после завершения Java-программы, если это имеет отношение к интерфейсу), и укажите данные повторения (как часто будет запускаться эта программа).

Большая часть той же логики проектируется и развивается в систему, которая содержит общие процедуры, которые эти программы или «интерфейсы» (то есть, как они их там называют) выполняют независимо (обычно с использованием кода, вставленного при копировании, поскольку большинство процедур похожи) , но мне все еще не хватает очень важной части, с которой мне нужна помощь, это касается реализации планировщика, которую я использую, и она мне нужна для удовлетворения одной из этих двух потребностей :

-Я хочу гарантировать, что всякий раз, когда я останавливаю сервер планирования для обновления системы (из-за добавления новых заданий и т. Д.) Или по любой другой причине, эти задания не могут выполняться из-за сбоя системы (например, 3 задания, которые не могли быть запущены в 15:00 из-за сбоя системы), запускаются при восстановлении работы сервера, даже если их соответствующее время планирования прошло.

ИЛИ, если первое, что невозможно, то:

-Мне нужен способ обновления планировщика новыми заданиями, а также обновления файлов JAR, которые предоставляют эти задания, без перезапуска планировщика (вроде OSGi).

Любое из этих условий удовлетворяло бы моим требованиям и завершило бы мой поиск замены, я рассмотрел Quartz, Oddjob (есть планировщик, работающий с этим планировщиком, но его нужно перезапускать каждый раз, когда вы добавляете новые задания / библиотеки, не удовлетворяет моим потребностям) и OSGi, использующий сервер приложений, но я ищу лучшие предложения, если вы также знаете лучшие варианты, они также высоко ценятся.

Ответы [ 2 ]

1 голос
/ 19 июля 2011

Хорошо, нашел именно то, что я хотел, Quartz добился цели, но я должен разработать свой собственный интерфейс управления, К счастью, есть этот проект http://code.google.com/p/myschedule/, который содержит все, что мне нужно (добавить, удалить, возобновить работу ), и запуск веб-приложения обходится дешево, так как вы можете использовать tomcat. Теперь я могу сосредоточиться на разработке многоразовых работ :), слава Богу, за Кварц!

1 голос
/ 11 июля 2011

Вы также можете взглянуть на http://jcrontab.sourceforge.net/

Jcrontab - это планировщик, написанный на Java.Цель проекта - предоставить полностью функциональные графики для проектов Java.

...