Это обширное руководство для начинающих пользователей Spring Boot, которые пытаются запланировать задачу для своего приложения.

Поэтому, если вы хотите изучить планировщик Spring Boot, я обязан познакомить вас со всеми основами планирования. Итак, давайте начнем с основ.

Много раз у нас есть прецедент, когда мы должны вызывать функцию в фиксированное время или мы должны вызывать ее снова и снова после фиксированной продолжительности. Spring Boot предоставляет нам несколько аннотаций, которые могут помочь нам в этом.

Настройка среды разработки.

  1. Во-первых, перейдите к файлу приложения Spring Boot, и нам нужно будет изменить файл, добавив аннотацию.

Аннотация @EnableScheduling сообщит Spring Boot, что это приложение требует планирования, а затем Spring Boot соответствующим образом настроит среду. Аннотация @EnableScheduling гарантирует, что будет создан исполнитель фоновой задачи. Без него ничего не запланировано.

2. Затем перейдите к своему классу, где у вас определена функция, которую вы хотите запланировать, и убедитесь, что этот класс имеет какую-то аннотацию, например @Component или @Service .

В приведенном выше классе мы использовали специальную аннотацию, которая дает нам огромные возможности для планирования вызова этой функции любым способом, который соответствует нашим требованиям. Существует несколько способов настроить способ планирования вызова нашей функции. Мы можем достичь всех способов, изменив параметр внутри аннотации @Scheduled.

1. Запланируйте задачу с фиксированной задержкой

@Scheduled(fixedDelay=1000)

Таким образом фиксируется продолжительность между окончанием последнего выполнения и началом следующего выполнения. Задача всегда ожидает завершения предыдущей.

Этот параметр следует использовать, когда необходимо, чтобы предыдущее выполнение было завершено перед повторным запуском.

2. Запланируйте задачу с фиксированной скоростью

@Scheduled(fixedRate=1000)

Эту опцию следует использовать, когда каждое выполнение задачи является независимым. Обратите внимание, что запланированные задачи по умолчанию не выполняются параллельно. Таким образом, даже если мы использовали fixedRate, следующая задача не будет запущена, пока не будет выполнена предыдущая.

Разница между FixedRate и FixedDelay

Свойство fixedDelay обеспечивает наличие задержки n миллисекунд между временем окончания выполнения задачи и временем начала следующего выполнения задачи. задача.

Свойство fixedRate запускает запланированную задачу каждые n миллисекунд. Он не проверяет предыдущие выполнения задачи.

Запланировать задачу с начальной задержкой

@Scheduled(fixedDelay=1000,initialDelay=1000)

При этом функция будет выполняться так же, как функция только со свойством fixedDelay, но при первом выполнении она будет ждать 1000 миллисекунд.

Запланируйте задачу с помощью выражений Cron

@Scheduled(cron="0 15 10 10 * ?")

Используя выражения cron, мы можем иметь гораздо больше гибкости для планирования задач, потому что здесь мы можем определить день, время, дату, час, минуту, секунды и т. д., когда наша функция должна быть выполнена.

По умолчанию Spring будет использовать локальный часовой пояс сервера для выражения cron. Однако мы можем использовать атрибут zone, чтобы изменить этот часовой пояс.

@Scheduled(cron="0 15 10 10 * ?" zone="GMT+5:30")

Мы можем использовать время по Гринвичу и стандартные часовые пояса, такие как CET и Европа/Париж.

Вот отличный ресурс для создания и понимания выражений cron для приведенной выше аннотации.



Заключение

Мы рассмотрели процесс включения планирования и различные способы настройки задач планирования в соответствии с нашим использованием.

Если вам понравилась статья, пожалуйста, отреагируйте на сообщение и подпишитесь на меня. Это очень поможет мне как автору небольшого контента и будет мотивировать меня распространять знания, и я продолжаю регулярно публиковать такой контент.