Estou tentando executar meu código em um agendamento fixo, com base em uma expressão do cron do Spring. Gostaria que o código fosse executado todos os dias às 1: 01: 00. Tentei a seguinte expressão, mas isso não foi acionado para mim. O que há de errado com a sintaxe aqui?
@Scheduled(cron = "0 1 1 ? * *")
public void resetCache() {
// ...
}
Respostas:
Tente com:
Abaixo, você pode encontrar os exemplos de padrões no fórum da primavera:
A expressão cron é representada por seis campos:
(*)
significa combinar com qualquer*/X
significa "todo X"?
("nenhum valor específico") - útil quando você precisa especificar algo em um dos dois campos em que o caractere é permitido, mas não no outro. Por exemplo, se eu quiser que meu gatilho seja acionado em um determinado dia do mês (por exemplo, o dia 10), mas não me importo com o dia da semana, eu colocaria "10" no dia- campo do mês e "?" no campo do dia da semana.PS: Para que funcione, lembre-se de habilitá-lo no contexto do aplicativo: https://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/scheduling.html#scheduling- suporte de anotação
fonte
Para o meu agendador, estou usando-o para disparar às 6 da manhã todos os dias e minha notação cron é:
Se você quiser 1: 01: am, defina-o como
Código completo para o planejador
** MUITO IMPORTANTE
Para ter certeza da exatidão do tempo de disparo do seu agendador, você deve definir o valor da zona como este (estou em Istambul):
Você pode encontrar os valores completos do fuso horário aqui .
Nota: A versão da minha estrutura Spring é: 4.0.7.RELEASE
fonte
<task:scheduled ref="paypalCronJob" method="runTask" cron="0 0 6 * * * ?"/>
?Você pode usar para anotar seu método
@Scheduled(cron ="0 1 1 * * ?")
.0 - é por segundos
1- 1 minuto
1 hora do dia.
fonte
Falta algo na resposta de gipinani
Isso será executado em 1.01 e 13.01. Pode ser usado quando você precisar executar o trabalho sem um padrão várias vezes ao dia.
E o atributo da zona é muito útil quando você faz implantações em servidores remotos. Isso foi introduzido na primavera 4.
fonte
Uma coisa que notei é: o Spring CronTrigger não é cron. Você pode terminar com 7 parâmetros em uma expressão cron válida (que você pode validar no cronmaker.com) e, em seguida, não aceitar. Na maioria dos casos, você apenas exclui o último parâmetro e tudo funciona bem.
fonte
Expressão cron da primavera para todos os dias 1: 01: am
@Programado (cron = "0 1 1? * *")
para mais informações, verifique estas informações:
https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm
fonte