2016-02-10 69 views
1

石英站點有一個大約JobDataMaphttp://quartz-scheduler.org/generated/2.2.1/html/qs-all/#page/Quartz_Scheduler_Documentation_Set%2Fco-bp_jobdatamap_tips.html%23)尖端提到:石英的JobDataMap

只有在JobDataMap的原始數據類型(包括字符串)存儲到 避免數據序列化問題短期和長期的。

請讓我知道,如果我的假設是正確的:

  1. 上面只是一個引導線。我可以存儲和檢索非原始對象作爲job data。調度程序將不會失敗
  2. 如果我存儲非原始數據,我可能會面臨設計問題。只要我改變序列化的對象屬性,問題就會發生。在更改我的代碼中的對象的版本與存儲在石英數據庫中的對象的版本不同之後。
  3. 如果我發現了序列化和desalinizing對象的正確的版本控制機制,然後我可以使用Quartz調度對象(有些guidlines在http://www.javaworld.com/article/2071731/core-java/ensure-proper-version-control-for-serialized-objects.html?page=1http://www.ibm.com/developerworks/java/library/j-5things1/index.html提到)

存儲爲JobDataMap在我的項目作業需要LOTS OF COMPLEX datamap才能運行,因此將所有這些數據作爲原始數據傳遞將是一件非常頭疼的事情。

回答

0

根據我的經驗,使用原始類型並不是必須的,它只是一個建議。但是這樣做非常有用也很安全,我建議如果可以的話,只需使用原始類型,例如,可以將所需數據存儲在數據庫的表中,並將該記錄的id置爲JobDataMap

+0

這應該是commen – ketan