Pergunta

Como posso executar uma tarefa diária em um determinado momento (digamos 11:00) usando java.util.Timer? Estou usando JDK 1.4.2, eu sei que é velho, mas é o que o projeto exige.

Foi útil?

Solução

O quartzo é a solução mais bem conhecido por processos de planejamento em ambientes Java, mas você tem um monte de opções. Confira esta lista:

Quartz é um sistema de agendamento de tarefas de código aberto que pode ser integrado com, ou utilizados ao longo do lado virtualmente qualquer J2EE ou aplicação J2SE. Quartzo pode ser usado para criar agendas simples ou complexos.

Jcrontab é projetado para ser ampliado e integrado com qualquer projeto. Lê e armazena as tarefas para executar em um arquivo, um banco de dados ou um EJB e fornece uma interface Web e uma interface gráfica básica swing.

Essiembre J2EE Scheduler é um mecanismo de agendamento de tarefas simples para aplicações J2EE . Esta biblioteca pode ser considerado um invólucro em torno das classes Timer e TimerTask encontrados no API Java padrão. Configuração para tarefas a serem executadas ea sua frequência é baseada em XML.

cron4j é um agendador para a plataforma Java 2, que é muito semelhante ao cron daemon UNIX.

Oddjob 's objetivo é para fornecer um pouco de ordem e visibilidade a todos os arquivos em lote e tarefas agendadas que vinculam processos críticos de negócios de uma empresa em conjunto.

Fulcrum Scheduler fornece um serviço do programador . Ele é baseado no TurbineScheduler fornecido com Turbine, mas todo o material mais antigo foi removido. Atualmente, apenas o Scheduler não persistente é feito. Ele carrega trabalhos agendados a partir do arquivo de configuração xml componente.

Gos4j -Goal Programação Orientada para Java- é uma forma de organização de processamento de prioridades com base nas metas.

Job Scheduler é um operacional programa de lote como um demônio, e pode ser controlado usando uma interface de utilizador gráfica. O Job Scheduler usa uma configuração XML para os programas agendados, scripts e para o calendário ea frequência do processamento da tarefa. Uma API está disponível que mãos o controle de eventos e registro para seus trabalhos.

JDRing é uma biblioteca de programação leve Java que é simples e pequeno, mas ainda suporta toque alarmes em intervalos especificados, como eventos de uma só vez, ou em horários complexos com completa cron-como controle.

jBatchEngine é um spooler trabalho em lotes escrito em Java. Em constrast para programadores impulsionado tempo como Cron, jBatchEngine é orientado a eventos.

MyBatchFramework é um open-source quadro leve projetado para criar programas de lote facilmente robustos e gerenciáveis ??para a linguagem Java.

Super com SuperScheduler e SuperWatchdog é um agendador de tarefas Java com rica GUI para todas as aplicações. É plataforma neutra. Especialmente bom para ser um programador de trabalho para Linux e Solaris. Ele fornece um conjunto de super funcionalidades do Programador do Microsoft Windows. Ele fornece agendamento desencadeada por eventos. Ele pode agendar tarefas em um ambiente distribuído. A tarefa será executada uma vez e apenas uma vez entre todas as máquinas na rede. Todas as tarefas são férias ajustável. Mesmo cada trabalho é um trabalho de espera, a história será um bom rastreamento para tas importantesks. Ele suporta internacionalização.

Fonte: Open Source Schedulers de empregos em Java

Outras dicas

Olhe em TimerTask e Timer -. Ambas estão nessa versão do JDK

Timer :
public void schedule(TimerTask task, Date firstTime, long period)
public void scheduleAtFixedRate(TimerTask task, Date firstTime, long period)

Set-lo para executar a primeira data que você quer, então o número de milissegundos em um dia como o seu atraso.

É possível para você usar uma biblioteca como cron4j ? Ele vai fazer o seu trabalho muito mais fácil!

  • Java Timers pode executar uma tarefa arbitrária em intervalos, os tempos pré-fixados, etc.etc.
  • Quartz biblioteca
  • Se você realmente quer ser nu-ossos sobre ele, envolvê-la em um shell script e colocar em em cron.

Você tem que usar Quartz

Eu nunca sei quem lança Quartz em primeiro lugar embora.

Se você tem um servidor de aplicativos ou artefato semelhante, você pode configurar a tarefa Quartz lá e tê-lo executar sua tarefa no momento dado.

Talvez, esse post recente ajuda-o:

Será que isto vai parar meu thread Java por um minuto?

A minha resposta para essa pergunta é usar um java construído em implementação baseada em classes java.util.Time e java.util.TimerTask: Será que isto vai parar meu thread Java por um minuto?

Ou, você pode usar o serviço crontab para plataformas * nix (disponível para plataformas Windows também). Esse é o estilo mais simples e leve para executar um trabalho autônomo periodicamente.

[] 's,

E Past

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top