@Scheduled 多个定时任务同时执行

简介: 这篇文章主要介绍了springBoot @Scheduled实现多个任务同时开始执行,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@Scheduled 多个定时任务同时执行


1、定时任务是单线程运行的


定时任务是单线程执行的,默认一个时间段只能执行一个定时任务

如果多个定时任务同时执行的话,那么会按照顺序执行


2、多线程开启定时任务


创建线程池,且注入到spring 中,

@EnableScheduling 定时任务扫描,开始定时任务计划支持



@Service
@Component
@EnableScheduling
public class SendMsgNoticeServiceTimer {
    private static final Logger logger = LoggerFactory.getLogger(SendMsgNoticeServiceTimer.class);
    @Autowired
    private NySendMsg nySendMsg;
 //创建定时任务线程池
    @Bean
    public TaskScheduler taskScheduler() {
        ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
        taskScheduler.setPoolSize(64);
        return taskScheduler;
    }
    @Scheduled(cron="0 0 10 * * ?")
    public void sendPaymentNotice() {
         logger.info("***-sendPaymentNotice--定时任务每天凌晨10点执行一次---***");
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
        String endDate = sf.format(new Date());
        JSONObject obj = sendTradingFeeChoosed(String.valueOf(1));
        logger.info("***---定时任务" + endDate + ":系统自动发送" + obj.size() + "条短信提醒---***");
    }
    @Scheduled(cron="0 0 10 * * ?")
    public void sendLateRemind() {
         logger.info("***--sendLateRemind---定时任务每天凌晨10点执行一次---***");
        SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
        String endDate = sf.format(new Date());
        JSONObject obj = sendTradingFeeChoosed(String.valueOf(2));
        logger.info("***---定时任务" + endDate + ":系统自动发送" + obj.size() + "条短信提醒---***");
    }



目录
相关文章
|
Java 数据安全/隐私保护 算法
[java]java使用AES加密解密 ,AES-128/192/256-ECB加密模式
直接上代码,是在springboot下直接test的 import org.apache.commons.codec.binary.
8065 0
|
Java Spring
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
843 0
spring 定时任务@Scheduled注解(代码超详细)和串并行配置
|
Java 调度 Spring
Spring之定时任务基本使用篇
本文介绍了在Spring Boot项目中使用定时任务的基本方法。主要通过`@Scheduled`注解实现,需添加`@EnableScheduling`开启定时任务功能。文中详细解析了Cron表达式的语法及常见实例,如每秒、每天特定时间执行等。此外,还探讨了多个定时任务的执行方式(并行或串行)及其潜在问题,并留待后续深入讨论。
911 64
|
7月前
|
缓存 Java Maven
六、Docker 核心技术:Dockerfile 指令详解
想亲手给你的应用程序打造一个专属的“集装箱”吗?Dockerfile就是你的说明书!它其实就是一个简单的文本文件,你可以在里面像搭积木一样,用FROM、COPY、RUN这些指令,一步步告诉Docker如何打包你的应用。最后,通过多阶段构建的小技巧,还能给镜像“减肥”,让它变得轻巧又高效。快来学习用Dockerfile变身打包达人吧!
875 4
|
JSON 前端开发 Java
Validated、Valid 、Validator,他们的区别你知道几个
对于任何基本验证,我们将在方法调用中使用 JSR @Valid注释。另一方面,对于任何组验证,包括组序列,我们需要 在我们的方法调用中使用 Spring 的@Validated注释。
Validated、Valid 、Validator,他们的区别你知道几个
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
7755 14
Spring Boot 3 集成 Spring Security + JWT
|
存储 监控 druid
Druid、ClickHouse、Doris、StarRocks 的区别与分析
本文对比了 Druid、ClickHouse、Doris 和 StarRocks 四款大数据分析引擎。它们均为 OLAP 引擎,采用列式存储和分布式架构,适用于海量数据分析。Druid 擅长实时分析与高并发查询;ClickHouse 以超高性能著称,适合复杂查询;Doris 提供易用的 SQL 接口,性能均衡;StarRocks 则以其极速查询和实时更新能力脱颖而出。各引擎在数据模型、查询性能、数据更新和存储方面存在差异,适用于不同的业务场景。选择时需根据具体需求综合考虑。
8012 20
|
缓存 Java UED
仅执行一次的定时任务如何设置?
【10月更文挑战第12天】仅执行一次的定时任务如何设置?
1322 1
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
36304 1
|
机器学习/深度学习 数据采集 算法
《深度解析DeepSeek-M8:量子经典融合,重塑计算能效格局》
DeepSeek-M8的“量子神经网络混合架构”融合了量子计算与经典算法的优势,开启了协同推理的新纪元。量子计算凭借叠加和纠缠特性,实现并行处理,大幅加速复杂问题解决;经典算法则确保逻辑控制与数据处理的稳定性。该架构在图像识别、金融风险评估及药物研发等领域展现出广阔前景,显著提升能效。尽管仍面临接口优化等挑战,DeepSeek-M8已成为计算领域的重要里程碑,引领未来科技变革。
464 7

热门文章

最新文章