美文网首页
Spring定时任务

Spring定时任务

作者: 小菜鸡 | 来源:发表于2020-11-17 15:24 被阅读0次

    通过使用@EnableScheduling@Scheduled两个注解就可以简单的设置定时任务了,另外使用@Component注解,因为我觉得它不是一个@Service,代码:

    @Component
    @EnableScheduling
    public class UpdateTask {
        private static final Logger logger = LoggerFactory.getLogger(UpdateTask.class);
    
        /*cron = second minute hour day month week
         *check the data version at the first day per month
         * */
        @Scheduled(cron = "0 0 0 1 * ?")
        public void checkDisGeNETDataVersion() {
            if (hasNewDataVersion()) {
                logger.info("Find new data version.  "+ LocalTime.now());
                if (doDataUpdate()) {
                    logger.warn("Failed to update data.");
                }
            }
        }
    }
    

    使用的是@Component注解,因为我觉得它不是一个@Service
    然后看一下@Scheduled(cron="")参数的示例:

    cron 触发时间
    0 0 12 * * ? 0 0 12 * * ? 每天中午12点
    0 15 10 ? * * 0 15 10 ? * * 每天上午10:15

    其中最后一位 可以省略,且 因为都是表示的一个月里面的第几天,所以说会出现冲突,在两者的任意一个中使用"?"来表示根据另外的一个设定来决定具体是哪一天任务触发。

    相关文章

      网友评论

          本文标题:Spring定时任务

          本文链接:https://www.haomeiwen.com/subject/ysixiktx.html