现在我们在Linux环境下运行java cron作业。并且在putty上通过Linux命令开始/停止作业。这将每天自动调度。但我的要求是我想从UI(如春季Web应用程序)控制这些cron作业。如开始工作,停止工作,工作的当前运行状态。有没有图书馆可用?请建议。谢谢。如何从Web应用程序控制Linux java cron作业?
回答
您可能要检查我们的QuartzDesk Executor(QE)免费和开放源代码在GitHub上的应用程序。 QE是建立在流行的Quartz调度API的顶部和外的开箱它允许您安排以下类型的任务/作业的执行基于Spring的Java Web应用程序:
- 本地可执行的应用程序和脚本(例如* .sh,* .exe,* .cmd,* bat)。
- 远程可执行应用程序和脚本(通过SSH)。
- 外部化Java Quartz作业。
- JDBC查询。
- HTTP(S)POST请求。
由于QE是开源的,您可以扩展它并添加自己的自定义类型的作业。
QE是指与我们QuartzDesk工作的管理和监控平台,提供额外的功能和体面的GUI使用。如果您决定试用QuartzDesk平台,您将获得持久执行历史记录,可视作业执行统计信息,作业执行通知(电子邮件,即时消息,SNMP陷阱,Web服务调用),作业链接等。
QuartzDesk可以拦截执行作业产生的日志消息。这些日志消息对所有当前正在执行的作业都是可见的,以便您可以在运行时(!)看到您的作业当前正在执行的操作。在执行历史记录视图中,您可以看到所有完成的作业执行的日志消息。对于OS本地作业(shell脚本,可执行命令等),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环境移动cron。他们只会在那里跑步。并需要从Java Web应用程序中控制它们。这是有用的吗? – NullPointerException
哦,我不这么认为。Quartz也支持“cron like”表达式,但两者不同。 –
- 1. 使用web应用程序远程重新计划cron作业
- 2. 如何监控java web应用程序
- 3. 如何安排Linux AMI上的Laravel应用程序的年度cron作业?
- 4. 如何从Web应用程序提交作业到hadoop群集?
- 5. 如何在linux中添加cron作业
- 6. 控制WinForms应用程序从Web应用程序
- 7. 如何在Java中使用Google应用程序设置Cron作业
- 8. CRON作业codeigniter
- 9. Spring Web应用程序 - 如何从页面控制器到业务层
- 10. 如何制作特殊的cron作业?
- 11. 从控制台到Web应用程序
- 12. 我如何在linux中制作不对称的cron作业?
- 13. 如何在应用程序引擎中安排cron作业?
- 14. 如何为codeigniter应用程序设置cron作业
- 15. 从Web应用程序(ASP.Net)远程控制Android应用程序
- 16. 从另一个java应用程序控制java应用程序
- 17. 如何从控制台应用程序
- 18. 如何从Java Web应用程序启动Android应用程序?
- 19. Cron作业限制
- 20. Cron作业输出在控制台上
- 21. 如何设置Codeingiter控制器使用cPanel执行cron作业
- 22. 如何使用cron作业?
- 23. 如何使用cron作业
- 24. 将C#控制台应用程序作为Azure Web作业发布
- 25. Yii2使用控制台控制器设置cron作业
- 26. 如何设置控制器的magento cron作业和init动作?
- 27. GPL许可证如何限制商业Web应用程序?
- 28. 将Java控制台程序转换为Web应用程序
- 29. 笨cron作业
- 30. 如何创建Java cron作业
我已经回答了几乎同样的要求看在 –
我已经回答了类似的要求看这个 –
http://stackoverflow.com/questions/20546403/spring-scheduler-change-cron-expression-dynamically/40692784#40692784 我已经为相同的要求 –