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.

Foi útil?

Solução

  1. Usando cron parece acrescentar outro ponto de entrada para a sua aplicação, enquanto Quartz 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 partir cron. Em Quartz você simplesmente (hehe) executar múltiplos threads.
  2. cron é dependente de plataforma, Quartz não é.
  3. 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).
  4. Quartz tem uma linguagem mais flexível de expressar ocorrências (quando as tarefas devem ser demitido).
  5. 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.
  6. 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
scroll top