2013-02-27 30 views
1

我使用石英+彈簧進行調度。 如果我想將一些靜態數據存儲在內存中,並將其用於作業的每一次迭代,那怎麼可能呢?如何在彈簧使用石英調度程序時緩存數據

謝謝

+0

它是桌面應用程序還是Web應用程序?其網頁應用程序爲 – Apurv 2013-02-27 07:19:45

+0

。 – gnreddy 2013-02-27 07:26:17

+0

您可以使用Servlet上下文。查看有關servlet上下文的詳細信息 - > http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html,以瞭解它的用法 - > http://stackoverflow.com/questions/3215988 /如何對獲取和設置-A-全球對象中的Java-的servlet上下文 – Apurv 2013-02-27 07:29:43

回答

0

我會假設你正在使用Quartz 1.8。 Quartz 2.x提供的註釋使實現變得更加方便,但是一旦你的代碼爲1.8,用這些註釋替換它就不難了。

  1. 確保您的工作實現了StateFulJob界面。如果您使用Quartz 2.x,請改爲使用Job界面,並使用@PersistJobDataAfterExecution註釋您的類。
  2. 從作業上下文中,檢索JobDataMapcontext.getJobDetail().getJobDataMap()
  3. 現在,您可以獲取數值並將其放入該地圖中,並且您放入地圖的每個值都可用於作業的後續運行。

確保您放入JobDataMap的所有對象都是可序列化的。同時配置Quartz不要同時運行這個工作來防止競爭條件。