美文网首页
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