Introdução
Quarzt é um projeto de código aberto que executa tarefas regularmente em um projeto. O Quartz é outro projeto de código aberto no campo da programação de empregos. Pode ser combinado com aplicativos J2EE e J2SE ou usado separadamente. Aqui, apresentamos exemplos de integração com a primavera.
Como a primavera integrou o Quarzt, precisamos apenas configurá -lo.
Baixe o pacote JAR
Você pode baixar diretamente o pacote JAR em http://www.quartz-scheduler.org/ site oficial de Quarzt
Pode ser construído através do MAVEN, lembre -se de apresentar o pote necessário para a primavera
<!-Apresentando as dependências correspondentes do quartzo-> <Depency> <Puperid> org.quartz-scheduler </groupiD> <stifactId> quartz </artifactid <Versão> 2.2.3 </sisters> </dependency>
conceito
Classe de tarefas: isto é, uma classe que requer a execução do código em intervalos regulares.
JobDetail: Os detalhes da configuração da classe de tarefas, ou seja, o método de injetar a classe de tarefas e especificar a classe de tarefas, é um trabalho executável que pode ser declarado em si.
MyTrigger: O gatilho representa a configuração de um parâmetro de agendamento, configurando o tempo de chamada.
Agendador: é um contêiner do agendador, que pode conter muitos poços de trabalho e gatilhos. Quando o contêiner for iniciado, cada ponto de trabalho é executado automaticamente passo a passo de acordo com o gatilho.
Método de configuração
Primeiro, escreva uma aula de tarefas
classe pública myjob {public void job () {System.out.println (new SimpleDateFormat ("yyyy-mm-dd hh: mm: ss"). formato (new date ()) + ": execução da tarefa"); }}Então primave para configurar o feijão da classe de tarefas
<bean id = "myjob" />
Configurar JobDetail, Injetar aulas de tarefas e métodos de classes de tarefas
<bean id = "jobDetail"> <!-injetar objeto de destino-> <propriedade name = "TargetObject" ref = "myjob"/> <!-injetar o método do destino-> <nome da propriedade = "TargetMethod" value = "job"/> </ Bean>
Configurar gatilhos
<!-Configure Trigger-> <bean id = "myTrigger"> <!-Injetar detalhes da tarefa Objeto-> <propriedade name = "JobDetail" ref = "JobDetail"/> <!-Injete a expressão de Cron, especifique o ponto de desencadeamento-e o nome da imóvel = "cronexpressão"> <value> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * O milho sobreviverá no seguinte
Finalmente configure a fábrica de expedição e injete o gatilho configurado
<!-Configure a fábrica de expedição-> <bean id = "schedulerFactoryBean"> <!-injetar tatger-> <propriedade name = "gatilhos"> <list> <ref bean = "myTrigger"/> </list> </sipers> </ Bean>
Nesse ponto, a configuração é concluída e as tarefas de tempo podem ser executadas.
Resultados da execução
Expressão de Cron
O milho é usado para controlar o tempo de agendamento da tarefa e é configurado no gatilho. A seguir, a sintaxe básica da expressão do milho. Se parecer muito complicado, o gerador de sintaxe de milho é fornecido na internet http://cron.qqe2.com/. Pode gerar automaticamente expressões de milho especificando condições.
Abaixo estão os significados representados por sete *
Asterisk: * representa a qualquer momento, o que indica que você deseja incluir todos os valores legais nesse campo.
* * * * * * significa que vai desencadear cada momento
0 * 17 * * ? : Inspire gatilhos a cada minuto das 17h às 17h59 todos os dias. Ele para às 17h59, porque o valor é 17 no domínio da hora, às 18h, a hora se torna 18, então eu ignoro esse gatilho até as 17h do dia seguinte.
Marco de interrogação (?): O? O sinal só pode ser usado nos domínios diário e semanal, mas não pode ser usado simultaneamente nesses dois domínios. Você pode pensar? O personagem é "Eu não me importo com o valor em campo". Isso é diferente de um asterisco, que indica todos os valores no campo. ? significa que você não especifica um valor para este campo. Se você especificar um valor para um desses dois campos, deve colocar um? no outro valor da palavra.
0 10,44 14 ? 3 WEB : é acionado às 14h10 e 14h44 toda quarta -feira de março.
Vírgula (,): é usado para especificar uma lista de valores em um campo. Por exemplo, o uso de valores 0,15,30,45 no segundo campo significa que um gatilho é acionado a cada 15 segundos.
0 0,15,30,45 * * * ? : O gatilho é acionado a cada quarto de hora.
Barragem (/): (/) é usada para um cronograma incremental. Acabamos de usar vírgulas para representar incrementos a cada 15 minutos, mas também podemos escrevê -los como 0/15.
0/15 0/30 * * * ? : O gatilho é acionado a cada 15 segundos na hora e na meia pontos.
Pontuação média (-): a pontuação média (-) é usada para especificar um intervalo. Por exemplo, 3-8 no domínio da hora significa "3, 4, 5, 6, 7 e 8 pontos". Os valores do domínio não permitem rebobinar, portanto, valores como 50-10 não são permitidos.
0 45 3-8 ? * * :: acionado das 3 às 45 da manhã às 8h.
Letra (L): L indica o último valor permitido em um campo. É suportado apenas pelos domínios diário e semanal. Quando usado no domínio do dia, ele representa o último dia do mês especificado no domínio do mês. Quando a letra L é usada no domínio da semana, indicando o último dia da semana, que é sábado (ou o número 7), você pode usar um número para conectar L para representar a última semana do mês x.
0 0 8 L * ? : Acionado às 8:00 da manhã no último dia de cada mês
0 59 23 ? * L : acionado às 11:59 no último sábado de cada mês
0 0 12 ? * 2L : a última segunda -feira de cada mês acionadores (o número está conectado a L para representar a última semana do mês x)
Carta (W): Dia da semana (seg-sex) e só pode ser usada no domínio diário. É usado para especificar o dia mais próximo da semana do dia especificado
Hack Sign ( #): o caractere # só pode ser usado no domínio periférico. É usado para especificar em que dia da semana em um mês especificado. Por exemplo, se você especificar o valor do campo semanal em 6 #3, significa a terceira sexta -feira de um determinado mês (6 = sexta -feira, #3 significa a terceira semana do mês).
Exemplo
"0012 **?" Acionado às 12 horas todos os dias "01510? **" Aparecido às 10:15 todos os dias "01510 **?" Acionado às 10:15 todos os dias "01510 **?*" Aparecido às 10:15 todos os dias "01510 **? 2005" acionado às 10:15 todos os dias "0*14 **?" Acionado às 10h15 todos os dias em 2005 a partir das 14h59 todos os dias "00/514 **?" Acionado às 14:00 todos os dias das 14:00 às 14:55 todos os dias "00/514,18 **?" Acionados às 14:00 todos os dias, das 14:00 às 14:55 e a cada 5 minutos todos os dias, das 18h55 e a cada 18h55 às 18h55, todos os dias a cada 1 minuto desencadeados por "010.4414? "015 da manhã no dia 15 do mês" "01510L*?" "015 da manhã no último dia do mês" "01510?*6L" nas últimas sextas-feiras do mês às 10:15 nas últimas sextas-feiras do mês "01510?*6l2002-2005" nas últimas sextas-feiras do mês de 2002 a 2005 às 10:15 da última vez, das últimas frides dos dias:
Resumir
O exposto acima é sobre as tarefas agendadas da Quarzt neste artigo, espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!