Cronografo o quarzo a tempo innescato?
-
06-07-2019 - |
Domanda
Ho già posto una domanda separata su come creare un evento con attivazione temporale in Java . Mi è stato presentato Quartz.
Allo stesso tempo, lo google anche online, e la gente dice che cron
in Unix è una soluzione ordinata.
Quale è meglio? Quali sono i contro e i pro?
Alcune specifiche del sistema: * Sistema operativo Unix * programma scritto in Java * Ho una coda di attività con oltre 1000 voci, per ogni timestamp potrebbero essere attivate fino a 500 attività.
Soluzione
- L'uso di
cron
sembra aggiungere un altro punto di ingresso nell'applicazione, mentreQuartz
si integrerebbe in esso. Quindi saresti costretto a gestire alcune comunicazioni tra processi se volessi passare alcune informazioni al / dal processo invocato dacron
. InQuartz
devi semplicemente (hehe) eseguire più thread. -
cron
dipende dalla piattaforma,Quartz
non lo è. -
Quartz
può consentirti di assicurarti in modo affidabile che un'attività venga eseguita in un determinato momento o qualche tempo dopo se il server è rimasto inattivo per qualche tempo. Purecron
non lo farebbe per te (a meno che tu non lo gestisca manualmente). -
Quartz
ha un linguaggio più flessibile per esprimere le occorrenze (quando le attività dovrebbero essere attivate). - Considera l'impronta di memoria. Se le singole attività non condividono nulla o poco, potrebbe essere meglio eseguirle dal sistema operativo come processo separato. Se condividono molte informazioni, è meglio averle come thread all'interno di un processo.
- Non sono sicuro di come gestire il clustering nell'approccio
cron
.Quartz
potrebbe essere utilizzato con Terracotta seguendo il modello di ridimensionamento (non ho provato ma credo che sia fattibile.
Altri suggerimenti
Il vantaggio di cron è che qualsiasi amministratore di sistema sa come usarlo ed è documentato in molti punti. Se cron farà il lavoro, sarebbe davvero la soluzione preferita.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow