我想在我的應用程序中使用Quartz Scheduler框架。我遇到了兩種類型的作業存儲的:Quartz Scheduler - RAM和JDBC之間的區別作業存儲
1)RAM招聘商店
2)JDBC作業存儲。
我想知道在哪種情況下,我必須使用哪個工作商店。他們之間有什麼優點和缺點。
任何對此的思考是真的對我有幫助,我很感激。
我想在我的應用程序中使用Quartz Scheduler框架。我遇到了兩種類型的作業存儲的:Quartz Scheduler - RAM和JDBC之間的區別作業存儲
1)RAM招聘商店
2)JDBC作業存儲。
我想知道在哪種情況下,我必須使用哪個工作商店。他們之間有什麼優點和缺點。
任何對此的思考是真的對我有幫助,我很感激。
JDBC任務存儲器將信息保存有關數據庫中執行的觸發器和工作,即:
不會丟失點火如果應用程序是下來的時候觸發是假設火(這取決於選擇的失火指令)
可以集羣調度的,其中每個節點都使用相同的數據庫
JDBC工作存儲是相當慢的
RAM的工作只存儲在非羣集應用程序,其中丟失的點火是不是一個大問題是適用的。它也快得多。如果你想用Quartz和RAM作業存儲,很可能你根本不需要Quartz。 Spring和EJB都提供了運行定期作業的機制,無論是基於時間還是基於CRON。
的RAM工作Store是非常快的,但很不穩定 - 就業機會將無法生存重新啓動服務器。
的JDBC工作Store是一個慢一點,但因爲工作是在持久性存儲(數據庫),他們將生存重新啓動。
所以,如果你只有短暫的作業計劃,並且它的確定失去他們當服務器重新啓動或應用程序重新部署,那麼你可以使用RAM工作存儲。
如果你需要,你的工作將生存關機/重啓保證,那麼你應該使用JDBC工作存儲。
所以,如果我可以在XML文件中堅持工作細節,那麼我可以先用RAMJobStore。是對的嗎? – Narendra
@Narendra:如果你只是在啓動時重新安排所有的工作,那麼是的。但請記住,如果您的觸發器假設每小時運行一次,但您的應用程序停機3小時,則RAM存儲器將丟失這3個觸發信號。 –
謝謝你讓我知道。現在我明白了。 – Narendra