2012-11-29 7 views
5

Voglio usare Quartz Scheduler framework nella mia applicazione. Mi sono imbattuto in due tipi di JobStores:Quartz Scheduler - Qual è il diff tra RAM e JDBC Job Store

1) Conservare RAM lavoro

2) negozio di JDBC lavoro.

Mi chiedo nel qual caso devo usare quale negozio di lavoro. E quali sono i pro e i contro tra di loro.

Qualsiasi idea su questo è davvero utile per me e lo apprezzo.

risposta

5

JDBC negozio lavoro salva le informazioni sui trigger sparati e posti di lavoro nel database, quindi:

  • non perderà cotture se l'applicazione era giù quando il grilletto è stato supponiamo di fuoco (questo dipende istruzioni mancata accensione scelto)

  • è possibile cluster il programmatore, dove ogni nodo utilizza lo stesso database

  • JDBC negozio di lavoro è notevolmente più lento

  • 012.

RAM Il job store è applicabile solo in applicazioni non in cluster dove perdere un licenziamento non è un grosso problema. È anche molto più veloce. Se si desidera utilizzare Quartz con RAM job store, molto probabilmente non è necessario il quarzo. Sia Spring che EJB forniscono meccanismi per eseguire lavori periodici, sia a tempo che a base di CRON.

+0

Quindi, se riesco a mantenere i dettagli del lavoro nei file xml, posso fare un salto con RAMJobStore. È giusto? – Narendra

+0

@Narendra: se si pianifica semplicemente di riprogrammare tutti i lavori all'avvio, allora si. Ma tieni presente che se il tuo trigger è in esecuzione ogni ora, ma la tua applicazione è inattiva per 3 ore, questi 3 licenziamenti andranno persi con l'archivio RAM. –

+0

Grazie per avermelo fatto sapere. Ora capisco. – Narendra

3

RAM Work Store è molto veloce, ma molto volatile: i lavori non sopravviveranno al riavvio del server.

Il Job Store JDBC è un po 'più lento, ma poiché i lavori sono in un archivio permanente (il database), sopravviveranno al riavvio.

Quindi, se si dispone solo di pianificazioni di lavoro di breve durata, ed è giusto perderle quando il server si riavvia o l'applicazione viene ridistribuita, è possibile utilizzare la RAM Job Store.

Se si ha la certezza che i lavori sopravviveranno a un arresto/riavvio, è necessario utilizzare l'archivio lavori JDBC.