Spring `@ Scheduled` не запускается до первого попадания HTTP? - PullRequest
0 голосов
/ 14 июня 2019

Я определил контроллер двумя способами:

@Scheduled(cron = "* * * * * *")
private void heartBeat() {
    logger.info("here");
}

@RequestMapping(value = "/now", method = RequestMethod.GET)
@ResponseBody
public String getDate() {
    return Instant.now().toString();
}

Мой конфиг выглядит так:

@Configuration
@EnableScheduling
@PropertySource("classpath:/application.properties")
@EnableAutoConfiguration
public class Config extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Config.class);
    }

При первом запуске приложения ничего не происходит.

Затем, как только я нажму curl http://localhost/now, метод heartBeat() начнет периодически выполняться.

Почему это не начинается сразу?

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Измените @Scheduled(cron = "* * * * * *") на @Scheduled(fixedRate = "* * * * * *"). Это запустит запланированный метод после запуска приложения.

0 голосов
/ 14 июня 2019

Похоже, я просто пропустил @ComponentScan

...