定时任务

阅读: 评论:0

定时任务

定时任务

使用定时任务时,会存在一个小问题,比如当我们设置每30分钟执行一次,但是我们启动服务后不会立即执行,而是下次的30分钟到了才执行。

解决方式:

增加注解@PostConstruct

//定时任务(每30分钟执行一次)
@PostConstruct
@Scheduled(cron = "0 1/30 * * * ?")
private void configureTasks() {log.info("-----------开始定时任务-----------");//业务处理try {log.info("-----------业务处理-----------");Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}log.info("-----------结束定时任务-----------");
}

启动服务后,可以发现会立即执行一次 

注意:这样虽然能解决,但是有个缺陷,如果定时任务执行的是耗时操作,比如调用一个远程接口,如果这个接口超时,那服务就会启动失败。所以我们可以用另外的方式来实现,比如在服务启动成功后执行一次即可。具体可参考:SpringBoot启动时的几种初始化操作_springboot 启动初始化_时光有伱记忆成花的博客-CSDN博客

推荐:通过实现CommandLineRunner或ApplicationRunner接口来实现即可

本文发布于:2024-02-04 05:33:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170700202152620.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23