现在我们在Linux环境中运行java cron作业。并且在putty上通过Linux命令执行作业的启动/停止。这将每天自动安排。但我的要求是我想从UI控制那些cron作业(如春季网络应用程序)。比如开始工作,停止工作,当前的工作运行状态。有没有可用的图书馆?请建议。谢谢。
答案 0 :(得分:0)
是的,有结账: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);
}
}
答案 1 :(得分:0)
您可能需要在GitHub上查看我们的QuartzDesk Executor(QE)免费和开源应用。 QE是一个基于Spring的Java Web应用程序,构建于流行的Quartz调度程序API之上,开箱即用,它允许您安排执行以下类型的任务/作业:
由于QE是开源的,您可以扩展它并添加自己的自定义类型的作业。
QE意味着与我们的QuartzDesk作业管理和监控平台一起使用,该平台提供了额外的功能和体面的GUI。如果您决定尝试使用QuartzDesk平台,您将获得持久的执行历史记录,可视化作业执行统计信息,作业执行通知(电子邮件,即时消息,SNMP陷阱,Web服务调用),作业链等。
QuartzDesk可以拦截已执行作业生成的日志消息。所有当前正在执行的作业都可以看到这些日志消息,以便您可以在运行时查看作业当前正在执行的操作(!)。在执行历史记录视图中,您可以看到所有已完成作业执行的日志消息。对于OS本机作业(shell脚本,可执行命令等),QuartzDesk可以拦截这些作业在标准和错误输出上生成的消息。
这就是连接到QE实例的QuartzDesk GUI看起来像: