Hablando de tareas programadas, deberíamos pensar en @Scheduled, Quartz y XXL-JOB. Sin embargo, algunos servicios individuales o proyectos pequeños pueden usar @Scheduled directamente para implementar tareas asincrónicas por conveniencia y velocidad. Por lo tanto, se amplían los requisitos temáticos de este artículo.
Cuando se usa @Scheduled en un proyecto, ¿cómo se puede ejecutar la tarea asincrónica especificada por adelantado cuando se inicia el proyecto?
1. Explicación detallada de @Scheduled
La anotación @Scheduled admite múltiples parámetros para controlar de manera flexible el tiempo de ejecución de la tarea.
cron: expresión cron, que puede controlar con precisión segundos, minutos, horas, días, meses, semanas, etc.
zona: recibe una zona horaria, como Asia/Shanghai, la zona horaria que usamos generalmente. Normalmente dejamos este campo en blanco.
fixDelay: cuánto tiempo después del tiempo de finalización de la última ejecución se ejecutará nuevamente. Como @Scheduled(fixedDelay = 5000)
fixDelayString: tiene el mismo significado que fixDelay, pero en forma de cadena. La única diferencia es que admite marcadores de posición, como @Scheduled(fixedDelayString = "5000")
fixRate: cuánto tiempo transcurre desde el último inicio del tiempo de ejecución, como @Scheduled(fixedRate = 5000)
fixRateString: tiene el mismo significado que fixRate, pero en forma de cadena. La única diferencia es que se admiten marcadores de posición.
inicialDelay: cuánto tiempo retrasar la ejecución por primera vez. Por ejemplo, se ejecutará después del primer retraso de 1 segundo. Luego se ejecutará cada 5 segundos de acuerdo con la regla de tasa fija @Scheduled (initialDelay = 1000, tasa fija =). 5000)
inicialDelayString: tiene el mismo significado que inicialDelayString, pero en forma de cadena. La única diferencia es que se admiten marcadores de posición.
Nota: Recuerde agregar @EnableScheduling a la clase de inicio para que se ejecute la tarea programada. Por supuesto, esto no afecta la prueba lógica de este artículo.
3. Resultados de la prueba
Después de que comience el servicio, vea la información de impresión