Прямо сейчас мы запускаем задания java cron в среде Linux. и запуск/остановка работы выполняется командами Linux на шпатлевке. который будет ежедневно планировать автоматически. Но мое требование: я хочу контролировать эти задания cron из UI (например, весеннее веб-приложение). например, начать работу, прекратить работу, текущий текущий статус задания. есть ли какие-нибудь библиотеки? Пожалуйста, предложите. Спасибо.Как управлять задачами java cron Linux из веб-приложений?
ответ
Вы можете проверить наш QuartzDesk Executor (QE) бесплатно и с открытым исходным кодом приложения на GitHub. QE родник на основе Java веб-приложение построен на вершине популярного Quartz планировщик API и вне коробки, что позволяет планировать выполнение следующих типов задач/заданий:
- Локальных исполняемых приложений и скрипты (например, * .sh, * .exe, * .cmd, * bat).
- Удаленные исполняемые приложения и скрипты (через SSH).
- Внешние задания кварца Java.
- JDBC запросы.
- HTTP (S) POST-запросы.
Поскольку QE является открытым исходным кодом, вы можете его расширить и добавить свои собственные типы заданий.
QE предназначен для использования с нашей платформой управления работой и мониторинга QuartzDesk, которая предоставляет дополнительные функции и достойный графический интерфейс. Если вы решите попробовать платформу QuartzDesk, вы получите постоянную историю выполнения, визуальную статистику выполнения заданий, уведомления о выполнении работ (электронная почта, мгновенные сообщения, SNMP-ловушка, вызов веб-сервиса), цепочка заданий и т. Д.
QuartzDesk могут перехватывать сообщения журнала, созданные выполненными заданиями. Эти сообщения журнала видны для всех выполняемых в настоящее время заданий, чтобы вы могли видеть, что ваши задания в настоящее время выполняют во время выполнения (!). В представлении истории выполнения вы можете видеть сообщения журнала всех выполненных заданий. Для рабочих заданий на основе ОС (сценарии оболочки, исполняемые команды и т. Д.) QuartzDesk может перехватывать сообщения, созданные этими заданиями, по их стандарту и выходному сигналу ошибки.
Это то, что QuartzDesk GUI, который подключен к QE, например, выглядит следующим образом:
Да, там проверить: http://www.quartz-scheduler.org/
имеет таблицы 3 или 4 SQL, настроенные, а затем вы можете просмотреть список всех заданий, их состояние, когда они будут работать в следующий раз, и т.д.
так же, как быстрый пример взгляд:
List<HashMap<String,Object>> jobs = new ArrayList<>();
Scheduler sch = MyScheduler.getScheduler();
for (String groupName : sch.getJobGroupNames()) {
for (JobKey jobKey : sch.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
String jobName = jobKey.getName();
String jobGroup = jobKey.getGroup();
List<Trigger> triggers = (List<Trigger>) sch.getTriggersOfJob(jobKey);
Trigger tg = triggers.get(0);
Date nextFireTime = tg.getNextFireTime();
System.out.println("[jobName] : " + jobName + " [groupName] : " + jobGroup + " - " + nextFireTime);
HashMap<String,Object> jb = new HashMap<>();
jb.put("triggerKey", tg.getKey());
jb.put("triggerGroup", tg.getKey().getGroup());
jb.put("triggerName", tg.getKey().getName());
jb.put("nextFireTime", nextFireTime);
jb.put("trigger_state", sch.getTriggerState(triggers.get(0).getKey()));
jobs.add(jb);
}
}
#Pedro Batista, мы не собираемся перемещать кран из среды Linux. они будут работать там только. и нужно контролировать их из веб-приложения Java. это работает? – NullPointerException
О, я так не думаю.Кварц поддерживает выражения типа «cron like», но они разные. –
Я ответил на почти такое же требование смотреть в том, что –
Я ответил на аналогичное требование смотрите в этом –
http://stackoverflow.com/questions/20546403/spring-scheduler-change-cron-expression-dynamically/40692784#40692784 Я уже ответил по тому же требованию –