2016-11-18 64 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」表達式,但兩者不同。 –