Как спроектировать Spring-boot планировщик как Service, чтобы другие микро-сервисы могли использовать его - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу спроектировать планировщик как сервис, используя spring-boot.Мой планировщик должен быть универсальным, чтобы другие микросервисы могли использовать его по своему усмотрению.

Я пробовал обычные примеры весенней загрузки.

/ ** * Этот планировщик будет запускаться каждые 20 секунд.* / @Scheduled (fixedRate = 20 * 1000, initialDelay = 5000) public void scheduleTaskWithInitialDelay () {logger.info ("Задача с фиксированной скоростью с задержкой инициализации 20 секунд :: Время выполнения -" + dateTimeFormatter.format (LocalDateTime.now ()));}

/**
 * This scheduler will run on every 10 Seconds.
 */
@Scheduled(fixedRate = 10* 1000, initialDelay = 5000)
public void scheduleTaskWithInitialDelay1() {
    logger.info("Fixed Rate Task With Initail Delay 10 Seconds:: Execution Time - "+dateTimeFormatter.format(LocalDateTime.now()));
}

1 Ответ

0 голосов
/ 19 сентября 2019

Вам нужно хранить запросы других микросервисов, чтобы запланировать что-то в своем персистенте.Итак, у вас есть инвентарь, который микросервис запросил у службы планирования и с задержкой или cron или чем-то еще.

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

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

Ваша таблица базы данных должна содержать все детали + что делать, если планировщик достигнет определенного времени (Передать данные / событие в некоторыеURL или что-то еще).

Некоторая техническая деталь

Вы планируете обслуживание должно позволять

  • Добавить расписание
  • Запуск / остановка / обновление существующего расписания
  • Обратный вызов или другая операция, когда планировщик встречает время

Надеюсь, это поможет.

...