Spring定时任务

通过使用@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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容