定时任务如何设置支持异步执行多个任务单个任务只能串行处理
发布时间
阅读量:
阅读量
Springboot框架中,@Scheduled注解默认采用单线程机制运行。这意味着当系统中存在多个定时任务时,若这些任务设定的触发时间相同,它们将依次排队执行。若某一任务的执行耗时较长,则可能造成其他定时任务无法按照预设时间点触发的问题。为缓解这一情况,可引入异步任务机制,在定时任务方法上添加@Asyns注解后,该任务将被分配至多线程环境中执行。
然而,异步任务也存在一定的局限性。只有在任务的执行顺序对最终结果无影响的前提下,才适合使用异步方式处理。若某些任务必须保持同步执行的特性,但又不希望不同定时任务之间出现相互等待的情况,则可通过以下方法进行优化。
在配置文件中增加相应配置即可实现需求
spring.task.scheduling.pool.size=20
以下为代码实现内容
主程序类
package com.example.demo;
import cn.hutool.extra.spring.EnableSpringUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
全部评论 (0)
还没有任何评论哟~
