我的程序有一個名爲Scheduler的組件,它允許其他組件註冊他們想要回調的時間點。這應該很像Unix的cron服務,我。即你告訴調度員「每過完整一小時十分鐘就通知我」。處理「回調」計劃執行的Java庫類?
我知道Java中沒有真正的回調。
這是我的方法,有沒有一個庫已經做這個東西?隨意提出改進建議。
註冊呼叫調度通行證:
- 包括小時,分,秒,年,月,DOM,陶氏,每個項目可能是不確定的時間說明,意爲「執行它的每一個小時/分鐘等。 「 (就像crontabs一樣)
- 一個包含數據的對象,這些數據將告知調用對象當Scheduler通知它該做什麼。調度程序不處理這些數據,只是將其存儲並在通知後將其傳回。
- 到調用對象
在啓動時的基準,或新的註冊請求後,調度與當前系統時間,並檢查日曆對象開始,如果有匹配數據庫中這一點,任何項時間點。如果有,它們將被執行,並且過程重新開始。如果沒有,則Calendar對象中的時間將增加1秒,並重新檢查entreis。這一直重複,直到有一個或多個條目匹配(es)。 (離散事件模擬)
調度程序然後會記住時間戳,睡眠和每秒喚醒以檢查它是否已經存在。如果它恰好醒來並且時間已經過去,它會重新開始,同樣如果時間到了並且作業已經執行完畢。
編輯:感謝您指出我石英。然而,我正在尋找更小的東西。
是的,但我需要的東西非常簡單,沒有額外的依賴關係。無論如何,我的應用程序已經處理了持久性,調度程序本身並不需要它。儘管我的列表中有Quartz,我以後需要更多的權力。 – 2009-03-07 09:14:46