Аннотация @Scheduled позволяет выполнять метод с заданной периодичностью. Метод должен быть без параметров или принимать параметр типа ScheduledEvent.
Свойство | По умолчанию | Описание |
---|---|---|
name | Не определено | Имя, может использоваться для идентификации задачи в компонентах сторонних реализаций периодических задач, например, xxl-job. |
cron | Не определено | Выражение cron, также можно использовать константы: yearly, annually, monthly, weekly, daily, midnight, hourly, minutely, 1m, 2m, 3m, 5m, 10m, 15m, 30m, 1h, 2h, 3h, 6h, ${env.scheduled.cron}: чтение из системного конфигурационного параметра. |
zone | Не определено | Часовой пояс, действует только при наличии значения у cron, например: «Asia/Shanghai». |
fixedDelay | -1 | Время задержки, отрицательное значение не допускается, поддерживает конфигурацию параметров, умножение и значения полей объектов. Поддерживаемые способы настройки значений параметров: 100: установка числового значения; ${env.scheduled.fixedDelay}: чтение из системного конфигурационного параметра. Если значение больше 0 и fixedRate меньше 0, используется ScheduledThreadPoolExecutor.scheduleWithFixedDelay. |
fixedRate | -1 | Период времени, отрицательное значение не допускается, поддерживает настройку параметров, умножение и значения полей объектов. Поддерживаемые способы установки значений параметров: 100: установка числового значения; ${env.scheduled.fixedRate}: чтение из системного конфигурационного параметра. Если значение больше 0 и fixedRate и fixedDelay меньше 0, используется ScheduledThreadPoolExecutor.scheduleAtFixedRate. |
initialDelay | -1 | Начальная задержка, отрицательное значение не допускается, поддерживает настройку параметров, умножение и значения полей объектов. Поддерживаемые способы установки значений параметров: 100: установка числового значения; ${env.scheduled.initialDelay}: чтение из системного конфигурационного параметра. Если значение больше 0 и fixedRate и fixedDelay меньше 0, используется ScheduledThreadPoolExecutor.schedule. |
timeUnit | TimeUnit.SECONDS | Единица времени TimeUnit. |
comment | Не определено | Комментарий. |
mode | LoadMode.LOCAL | Применяется к режиму Service, по умолчанию: LOCAL, означает, что периодические задачи в удаленном режиме Service не действуют. |
@Scheduled(cron = "0/1 * * * * ?")
public void task1() {
System.out.println(Times.nowMillis() + "执行一次");
}
@Scheduled(fixedDelay = "10", fixedRate = "60", timeUnit = TimeUnit.MINUTES)
private void task3() {
System.out.println(Times.nowMillis() + "执行一次");
}
@Scheduled(fixedRate = "${env.scheduled.fixedRate:60}")
public String task2() {
System.out.println(Times.nowMillis() + "执行一次");
return "";
}
<!--
Глобальные настройки периодических задач для сервиса, если узел не настроен, автоматически создаётся новый.
enabled: включать ли кэширование. По умолчанию: true
-->
<scheduled enabled="true"/>
Annotation Scheduled позволяет использовать сторонние реализации, пакет redkale-plugins предоставляет реализацию xxl-job и не зависит от пакета xxl-job.
<dependency>
<groupId>org.redkalex</groupId>
<artifactId>redkale-plugins</artifactId>
<version>2.8.0</version>
</dependency>
<scheduled enabled="true">
<xxljob addresses="http://localhost:8080/xxl-job-admin"
executorName="redkale-examples"
ip="127.0.0.1" <!-- опционально -->
port="5678" <!-- опционально -->
accessToken="default_token" />
</scheduled>
@Scheduled(name = "testTask")
public void runTask(ScheduledEvent event) {
System.out.println("xxl-job параметр param: " + event.getString("param"));
System.out.println("xxl-job параметр index: " + event.getInteger("index"));
System.out.println("xxl-job параметр total: " + event.getInteger("total"));
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )