我想從Quartz中的調度程序檢索調度但已執行的作業。有沒有辦法做到這一點?從Quartz中的調度程序獲取執行的作業
0
A
回答
1
哦,首先你需要檢索所有當前預定作業的列表:
Scheduler sched = new StdSchedulerFactory().getScheduler();
List jobsList = sched.getCurrentlyExecutingJobs();
然後,它的迭代名單檢索範圍的工作範圍內的事。每個上下文都有一個getPreviousFireTime()。
Iterator jobsIterator = jobsList.listIterator();
List<JobExecutionContext> executedJobs = new List<JobExecutionContext>();
while(jobsIterator.hasNext())
{
JobExecutionContext context = (JobExecutionContext) jobsIterator.next();
Date previous = context.getPreviousFireTime();
if (previous == null) continue; //your job has not been executed yet
executedJobs.Add(context); //there's your list!
}
根據你使用的是哪種石英(java或.net),實現可能略有不同,但原理相同。
0
設置屬性JobDetail.setDurability(true) - 指示Quartz在成爲「孤立」時不要刪除作業(當作業不再有引用它的觸發器時)。
相關問題
- 1. Quartz調度程序在應用程序池回收後不執行作業(.Net)
- 2. Quartz中的異步作業調度
- 3. 在集羣環境中發佈Quartz調度程序作業
- 4. 如何保存Quartz執行的作業?
- 5. 石英作業從quartz-job.xml在調度程序啓動時運行
- 6. 在Bluemix上執行Apache Spark SQL的作業的調度程序
- 7. 獲取Quartz.NET調度程序中的所有活動作業
- 8. Quartz調度程序的設計決策執行
- 9. 使用Quartz動態調度作業
- 10. Spring引導+ Quartz + Oracle作業調度
- 11. 如何獲得調度程序(即)按Quartz中的名稱調度程序?
- 12. 執行Quartz .NET作業來調用現有的類方法
- 13. 石英調度程序 - 允許並行作業執行
- 14. 作業調度程序每天運行
- 15. NserviceBus調度程序停止執行作業
- 16. 石英調度程序在執行作業之前關閉
- 17. 使用彈簧在Quartz調度程序中完成作業後插入數據
- 18. java quartz從計劃作業中獲取所有詳細信息
- 19. Spark流作業調度控制執行?
- 20. java ee作業調度和執行
- 21. Java示例:使用Quartz進行動態作業調度
- 22. 使用Quartz進行動態作業調度
- 23. 從庫中獲取WPF調度程序
- 24. 選擇Quartz集羣中的節點來執行作業
- 25. 錯誤發生在Quartz中執行的實例化作業sheduler
- 26. 如何重新安排Quartz中的作業執行間隔?
- 27. Oracle調度程序作業執行程序,或者在作業運行期間誰是用戶
- 28. 作業的順序調度
- 29. 石英調度程序中斷作業?
- 30. 在laravel 5作業調度程序中執行外部php腳本作爲cron
感謝您的回覆。代碼中指定的jobList是什麼? (你得到列表迭代器的那個) – Chanikag 2013-05-09 05:08:56
在這裏,我想檢索完全執行(不再運行)的作業。如果我可以從計劃程序中獲得所有計劃的任務(當前正在執行+完全執行),那也沒問題。 – Chanikag 2013-05-09 06:20:38
@Chanikag我已經更新了代碼段以使其更清晰。希望能幫助到你! – 2013-05-09 19:51:04