2012-11-29 111 views
5

我想在我的應用程序中使用Quartz Scheduler框架。我遇到了兩種類型的作業存儲的:Quartz Scheduler - RAM和JDBC之間的區別作業存儲

1)RAM招聘商店

2)JDBC作業存儲。

我想知道在哪種情況下,我必須使用哪個工作商店。他們之間有什麼優點和缺點。

任何對此的思考是真的對我有幫助,我很感激。

回答

5

JDBC任務存儲器將信息保存有關數據庫中執行的觸發器和工作,即:

  • 不會丟失點火如果應用程序是下來的時候觸發是假設火(這取決於選擇的失火指令)

  • 可以集羣調度的,其中每個節點都使用相同的數據庫

  • JDBC工作存儲是相當慢的

RAM的工作只存儲在非羣集應用程序,其中丟失的點火是不是一個大問題是適用的。它也快得多。如果你想用Quartz和RAM作業存儲,很可能你根本不需要Quartz。 Spring和EJB都提供了運行定期作業的機制,無論是基於時間還是基於CRON。

+0

所以,如果我可以在XML文件中堅持工作細節,那麼我可以先用RAMJobStore。是對的嗎? – Narendra

+0

@Narendra:如果你只是在啓動時重新安排所有的工作,那麼是的。但請記住,如果您的觸發器假設每小時運行一次,但您的應用程序停機3小時,則RAM存儲器將丟失這3個觸發信號。 –

+0

謝謝你讓我知道。現在我明白了。 – Narendra

3

的RAM工作Store是非常快的,但很不穩定 - 就業機會將無法生存重新啓動服務器。

的JDBC工作Store是一個慢一點,但因爲工作是在持久性存儲(數據庫),他們將生存重新啓動。

所以,如果你只有短暫的作業計劃,並且它的確定失去他們當服務器重新啓動或應用程序重新部署,那麼你可以使用RAM工作存儲。

如果你需要,你的工作將生存關機/重啓保證,那麼你應該使用JDBC工作存儲。

相關問題