2016-11-18 33 views
0

现在我们在Linux环境下运行java cron作业。并且在putty上通过Linux命令开始/停止作业。这将每天自动调度。但我的要求是我想从UI(如春季Web应用程序)控制这些cron作业。如开始工作,停止工作,工作的当前运行状态。有没有图书馆可用?请建议。谢谢。如何从Web应用程序控制Linux java cron作业?

+0

我已经回答了几乎同样的要求看在

+0

我已经回答了类似的要求看这个 –

+0

http://stackoverflow.com/questions/20546403/spring-scheduler-change-cron-expression-dynamically/40692784#40692784 我已经为相同的要求 –

回答

0

您可能要检查我们的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实例,看起来像:

QE instance in the QuartzDesk GUI

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); 
     } 
    } 
+0

#Pedro Batista回答了,我们不打算从Linux环境移动cron。他们只会在那里跑步。并需要从Java Web应用程序中控制它们。这是有用的吗? – NullPointerException

+0

哦,我不这么认为。Quartz也支持“cron like”表达式,但两者不同。 –