cron - ingles - cómo se dice en inglés
Cron expresión con retraso inicial-Cuarzo (1)
Solo puedo descubrir cómo configurar un trabajo de Cron en Quartz con un retraso inicial. Entonces necesito algo que funcione cada hora con un retraso inicial de 10 minutos.
"* * 0/1 * * ?"
Aquí hay una respuesta tardía, con suerte esto ayuda a otros. Resolví el problema al tener 2 funciones programadas en mi clase de servicio:
@EnableScheduling
public class DeviceService {
@Scheduled(initialDelayString = "${devices.update.initial}", fixedDelay = 2592000000L)
public void initialUpdateDevices() {
updateDevices();
}
@Scheduled(cron = "${devices.update.cron}")
public void cronUpdateDevices() {
updateDevices();
}
private void updateDevices() {
...
}
}
El retraso inicial y la expresión cron se establecen en application.properties. FixDelay está ahí porque Spring no permite el inicio de la reproducción solo. Lo configuré en 2592000000ms, que son 30 días. En nuestra aplicación, la posible actualización adicional no causa ningún daño.
En application.properties:
devices.update.initial = 600000
devices.update.cron = 0 30 1 * * *
Inicialmente se ejecuta después de 10 minutos (60000ms) y luego todas las noches a la 01:30.
En application-test.properties para pruebas unitarias:
devices.update.initial = 86400000
devices.update.cron = 0 30 1 24 12 *
Ninguna de nuestras pruebas unitarias tarda 1 día en ejecutarse, por lo que 86400000 milisegundos es una apuesta segura. El cron "0 30 1 24 12 *" está configurado para la noche de Nochebuena, cuando las personas deberían estar soñando con cosas agradables.