No fundo do aplicativo das ferramentas de desenvolvimento e teste, muitas vezes ouço colegas dizerem que precisam fazer uma tarefa cronometrada para realizar processamento de log ou limpeza de dados, incluindo fazer alguma lógica complexa de cálculo de negócios. Ao escolher uma tarefa cronometrada, como eles podem implementá -la rapidamente e escolher um método mais adequado para você? Eu colecionei e organizei alguns métodos para implementar tarefas programadas aqui. Espero que possa ajudar os alunos que estão apenas começando a realizar tarefas programadas. Por favor, corrija qualquer escrita errada.
Existem três maneiras de resumir as tarefas de tempo básico de Java:
1.1 Crie um encadeamento e, em seguida, deixe -o ser executado no loop while e alcançar o efeito da tarefa de tempo através do método do sono;
1.2 O uso do Timer e Timertosk tem os seguintes benefícios em comparação com o primeiro método:
1.3 O ScheduleDexecutorService é introduzido como uma classe de ferramentas simultânea em java.util.Concurrent. Este é o método ideal de implementação de tarefas cronometradas. Comparado com os dois métodos anteriores, ele tem os seguintes benefícios:
Existem três maneiras de resumir as tarefas cronometradas da primavera:
2.1 Timervas de TimerTask: Spring ScheduledTimerTask define o ciclo de corrida de uma tarefa de timer. Infelizmente, você pode especificar a frequência da execução da tarefa, mas não pode especificar exatamente quando ela é executada, o que requer o uso do segundo quartzo para agendamento de tarefas;
Crie uma tarefa comercial, declarada no arquivo de configuração da primavera;
No arquivo de configuração da primavera, configure o ScheduledTimerTask e associe a instância de tarefa personalizada;
Comece o cronômetro, o TimerFactoryBean da Spring é responsável por iniciar a tarefa de tempo
2.2 Usando quartzo:
Primeiro de tudo, defina tarefas de lógica de negócios como de costume:
Declare e configure o método de gatilho de agendamento de empregos na primavera
Aqui, existem dois tipos de gatilhos para o quartzo, ou seja,
org.springframework.scheduling.quartz.simpletriggerbean
org.springframework.scheduling.Quartz.cRentriggerbean
O primeiro SimpleTriggerBean suporta apenas as tarefas de chamadas em uma certa frequência, como a execução de vez em quando.
<bean id = "SimpleTrigger"> <propriedade name = "jobDetail" ref = "myjob" /> <propriedade name = "startDelay" value = "0" /> <!-Depois que a fábrica de despacho é instanciada, o despacho começa após 0 segundos-> <nome da propriedade "REPEPTINTAL" = "2000" /> <!
O segundo tipo de CrontriggerBean suporta em execução uma vez em um horário especificado, como executar uma vez às 12:00 todos os dias, conforme configurado acima;
Configure a fábrica de expedição
org.springframework.scheduling.quartz.schedulerFactoryBean, o código é como acima;
Basta iniciar seu aplicativo
2.3 Usando a tarefa de mola
A ferramenta de tarefas cronometradas da Spring, a tarefa de primavera, pode compará -la a um quartzo leve e é muito simples de usar. Não requer pacotes adicionais, exceto para pacotes relacionados à mola e suporta dois tipos de anotações e arquivos de configuração:
Etapa 1: escreva a classe de tarefas; TaskJob, Method Job1 - A segunda etapa do omitir de código: Adicionar espaço para nome e descrição no cabeçalho do arquivo de configuração da primavera
) http://www.springframework.org/schema/task/spring-task-3.0.xsd ">
Etapa 3: Defina tarefas específicas no arquivo de configuração da primavera
<Tarefa: Tasks agendados> <Tarefa: Ref programado = "TaskJob" Method = "Job1" Cron = "0 * * * * * *?"/> </Task: Scheduled-Tasks> <Contexto: Package da base do componente-Scan = "com.alibaba.myTask"/>
Descrição: O parâmetro REF especifica a classe de tarefas, o método especifica o método que precisa ser executado, as expressões Cron e Cronexpression, o método de escrita específico não será introduzido aqui, e o <Contexto: ANOTAÇÃO BASE-SCAN PACAGE = "com.alibaba.myTask" /> Spring Scanation é usado.
O exposto acima é tudo sobre este artigo, espero que seja útil para o aprendizado de todos.