Я выполнил очень простые примеры в Интернете, чтобы настроить задание cron в Spring, но я все время получаю эту ошибку в журнале запуска Tomcat каждый раз:
2015-05-25 00:32:58 DEBUG ScheduledAnnotationBeanPostProcessor:191 -
Could not find default TaskScheduler bean org.springframework.beans.factory.NoSuchBeanDefinitionException: No
qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined
2015-05-25 00:32:58 DEBUG ScheduledAnnotationBeanPostProcessor:202 - Could not
find default ScheduledExecutorService bean
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying
bean of type [org.springframework.scheduling.TaskScheduler] is defined
И два класса Java, используемые для реализации cron:
1) Класс @Configuration:
@Configuration
@EnableScheduling
public class ClearTokenStoreCronEnable {
final static Logger log =
LoggerFactory.getLogger(ClearTokenStoreCronEnable.class);
private @Autowired TokenStoreRepository tokenStoreRepository;
}
и класс работы Cron:
@Service
public class ClearTokenStoreWorkerService {
final static Logger log = LoggerFactory.getLogger(ClearTokenStoreWorkerService.class);
private @Autowired TokenStoreRepository tokenStoreRepository;
//@Scheduled(fixedDelay=5000)
//run daily at midnight
@Scheduled(cron = "0 0 * * * *")
public void tokenStoreTable() {
log.debug("tokenstore table truncated - start");
tokenStoreRepository.deleteAll();
log.debug("tokenstore table truncated - end");
}
}
Как побочная заметка, задание cron работает в полночь, но, похоже, оно также запускается случайным образом в другое время. Не уверен, что это ошибка, или мое выражение cron неверно:
@Scheduled(cron = "0 0 * * * *")
Моя главная забота в это время - почему я получаю ошибки ScheduledAnnotationBeanPostProcessor
? Он ищет TaskScheduler и ScheduledExectorService. Мне просто нужно запускать это один раз в день. Я не выполняю параллельную обработку или мне нужно несколько потоков. В конечном счете, эти ошибки вредны или мне нужно их исправить?