Tempo desencadeada trabalho Cron ou Quartz?
-
06-07-2019 - |
Pergunta
Eu já fiz uma pergunta separada sobre como criar hora do evento acionado em Java . Fui apresentado a Quartz.
Ao mesmo tempo, eu também google-lo online, e as pessoas estão dizendo cron
em Unix é uma solução elegante.
Qual é o melhor? O que é os prós e contras?
Alguns especificação do sistema: * Unix OS * Programa escrito em Java * Eu tenho uma fila de tarefas com 1000 entradas, para cada timestamp, até 500 tarefas podem ser acionados.
Solução
- Usando
cron
parece acrescentar outro ponto de entrada para a sua aplicação, enquantoQuartz
iria integrar nele. Então você seria forçado a lidar com algum tipo de comunicação inter-processo, se você queria passar algumas informações de / para o processo chamado a partircron
. EmQuartz
você simplesmente (hehe) executar múltiplos threads. -
cron
é dependente de plataforma,Quartz
não é. -
Quartz
pode permitir que você faça de forma confiável certeza uma tarefa é executada no momento dado ou algum tempo depois se o servidor foi para baixo por algum tempo.cron
Pure não faria isso para você (a menos que você segurá-lo manualmente). -
Quartz
tem uma linguagem mais flexível de expressar ocorrências (quando as tarefas devem ser demitido). - Considere o consumo de memória. Se o seu único tarefas share pouco ou nada, então ele pode ser melhor para executá-los a partir do sistema operacional como um processo separado. Se eles compartilham um monte de informações, é melhor tê-los como tópicos dentro de um processo.
- Não tem a certeza como você poderia lidar com a aglomeração na abordagem
cron
.Quartz
pode ser usado com Terracotta seguindo a escala out pattern (Eu não tentei isso, mas eu acredito que é factível ).
Outras dicas
A vantagem para cron é que qualquer sysadmin sabe como usá-lo e ele está documentado em muitos lugares. Se cron irá fazer o trabalho, então ele realmente seria a solução preferida.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow