使用定时任务时,会存在一个小问题,比如当我们设置每30分钟执行一次,但是我们启动服务后不会立即执行,而是下次的30分钟到了才执行 。
解决方式:
增加注解@
文章插图
【定时任务-启动服务立即执行一次,再按照cron表达式等待下一次执行】
//定时任务(每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("-----------结束定时任务-----------");}
启动服务后,可以发现会立即执行一次
文章插图
注意:这样虽然能解决,但是有个缺陷,如果定时任务执行的是耗时操作,比如调用一个远程接口,如果这个接口超时,那服务就会启动失败 。所以我们可以用另外的方式来实现,比如在服务启动成功后执行一次即可 。具体可参考:启动时的几种初始化操作 启动初始化_时光有伱记忆成花的博客-CSDN博客
推荐:通过实现或接口来实现即可
- 深度学习在花椒直播中的应用—推荐系统冷启动算法
- 一篇文章了解 Docker 的安装、启动以及工作原理!
- 降噪 通知告警治理的7种方法
- Android Studio安装成功 启动失败 提示重装的问题解决方法 Miss
- 以太坊私有链启动命令优化与注意点
- 记一次mysql无法启动故障恢复和备份规划
- 第三讲 启动、中断、异常和系统调用
- 5张图搞懂Android系统启动的核心流程
- 如何使用计算机定时启动文件夹,手把手教你电脑开机自动打开文件夹怎么解决...
- 如何使用计算机定时启动文件夹,详细教您电脑开机自动打开文件夹怎么解决