現在我們在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 我已經爲相同的要求 –