我已经按照网上的非常简单的示例在Spring中设置了一个cron任务,但每次启动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
用于实现cron的2个Java类:
@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");
}
}
顺便说一下,定时任务是在午夜运行的,但它似乎也会在其他时间随机运行。不确定这是否是一个 bug 或者我的 cron 表达式有误:@Scheduled(cron = "0 0 * * * *")
我现在主要关心的是为什么会出现 ScheduledAnnotationBeanPostProcessor
错误?它正在寻找 TaskScheduler 和 ScheduledExectorService。 我只需要每天执行一次。我没有进行并发处理或需要多个线程的操作。这些错误最终是有害的还是需要修复它们呢?