2014-11-25 40 views
2

我正在開發spring mvc應用程序。在春天實現調度器(由用戶定義)

我已經通過了以下鏈接

  1. http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support-scheduled
  2. http://www.mkyong.com/spring-batch/spring-batch-and-spring-taskscheduler-example/

這些指南如何安排。

但我必須把它給用戶,安排(運行在每日/每週等)一些功能從GUI。

任何人都可以幫助我,我怎麼能做到這一點?

+0

你想要安排什麼?這是更長的工作嗎? – 2014-11-25 07:11:25

+0

將其視爲某種預定義的任務/作業。我只想讓用戶在運行時安排它。任務可以小5分鐘,也可以大4小時左右。 – 2014-11-25 07:14:59

回答

1

假設您有幾個任務要由用戶安排。

爲任務名稱定義一個枚舉,並使用枚舉運行任務。定義每秒鐘執行的作業(分鐘,小時)。作業只是檢查是否有用戶的任務被執行。

現在,用戶可以定義這樣的任務蒙山以下PARAMS 任務類型(枚舉值) TaskTime(當它應該開始如12:00) TaskPeriod(多久應該叫)

TaskTime和TaskPeriod可以加入,例如在cron表達式中。

然後所有的任務信息都存儲在某個地方(例如在數據庫中)。

您的永久作業每秒鐘從數據庫中讀取是否有要執行的任務。它檢查任務時間和任務週期,並與當前時間進行比較。如果是時候開始它獲取枚舉值並調用Runner的枚舉方法。

+0

我真的很喜歡你的答案。謝謝。 – 2014-11-25 08:14:22

2

請檢查link。它解釋瞭如何通過在屬性文件中提供crone表達式來安排任務。

其他解決方案是直接使用quartz庫。我們可以使用它輕鬆安排或重新安排工作。請參閱this

希望這會有所幫助。

+1

感謝您的回覆。它在服務器啓動時分配值。但我的要求是,用戶可以在運行時設置時間並可以多次安排相同的任務。 – 2014-11-25 07:22:14

+0

我認爲@scheduled註釋是不可能的。如果使用石英庫,您可以輕鬆地重新安排任務。 – shintoZ 2014-11-25 07:27:27

+0

您能否爲此提供一些信息/鏈接。 – 2014-11-25 08:53:36