雖然我以前在Quartz方面有過一些經驗,但我在現有項目上首次從零開始設置它。我們決定使用Quartz(部分)爲未來的需求做準備。針對多個用戶啓動的任務的石英建議
我要尋找的建議/建議在以下方面:
要求
- 將有幾種不同類型的用戶發起的任務,每一個從幾秒鐘抽出幾分鐘任何地方。這些需要與請求它們的用戶異步執行,並且即使用戶在臨時註銷時也要啓動。
- 這些任務將被分組到各個類別中。
- 在每個類別中,只有N(配置)任務應該同時執行
- 每個用戶都必須能夠檢索任務列表他們,他/她發起
- 管理員必須能夠檢索任務列表爲所有用戶
- 任務必須在執行
- 任務的中間撤銷必須撤銷,而排隊
- 如果出現故障,那是正在執行需要恢復並重新啓動
- 聚類任何任務必須被supprorted
選項
我看到執行下列選項,並會很感激一些反饋。
- 多爲自託管
- 維護自己獨立的任務表,與預定的時間,用戶,狀態欄等
- 每組有運行每x秒,檢查一個石英工作爲表中的下一個任務執行並行執行。
- 我不知道如何在這種情況下實現n個並行執行,除了每個組的n個Quartz作業。
- 我期望在這種情況下Quartz不需要在重啓時保留任何東西,儘管這意味着我的代碼必須處理這種情況。
- 如果沒有任務安排,石英工作仍然會火
- 石英管
- 每個任務的單獨石英工作。
- 我不確定在這種情況下如何允許每組n個並行作業。看來Quartz註釋可以用來一次阻止多個並行的Job。
- 石英錶需要在數據庫中保存。
- 石英本身將負責重新啓動後恢復。
- 如果沒有計劃任務,則不會觸發Quartz作業。
- 還有其他的東西嗎?
我不確定(提前)上述每個要求對應的要求如何。
我希望根據我上面寫的內容提供反饋意見。我找不到很多關於這方面的指導,因爲大多數似乎僅限於以特定間隔或時間運行的Quartz作業,並執行與用戶調度或用戶請求無關的特定任務。
謝謝。
Acewin嗨。感謝您的答覆。我想過你的問題,並且一直在做更多的閱讀。我現在可以更好地(希望)以這種方式重述我的問題:用戶啓動任務。我想使用Quartz來調度和限制正在運行的同時任務的數量。我最好是(a)每個任務有一個Quartz作業實例,並根據需要使用專門的Quartz作業來觸發它們,或者(b)有一個Quartz作業並根據數量創建n個觸發器未完成的工作。這是否澄清我的問題? – Ask613
是的,現在清楚如何進行你應該能夠拿出一個解決方案。當使用API唯一的方式來解決這個問題時,這是實施解決方案 – Acewin