spring定时任务(scheduler)的串行、并行执行

对于spring的定时任务,最近有接触过一些,对于串行和并行也学习了一下,现在这里做下记录。

我是把每个定时任务分别写在不同的类中的,即一个类就是一个定时任务,然后在spring配置文件中进行配置,首先说串行任务的配置。如下:

1、串行

<task:scheduled-tasks>
            <task:scheduled ref="className1" method="methodName1" cron="0 0/5 * * * ?"/>
            <task:scheduled ref="className2" method="methodName2" cron="0 0 12 * * ?"/>
</task:scheduled-tasks>

如上所示为两个串行的定时任务,分别为类className1中的methodName1和类className2中的methodName2两个方法,串行的执行方式为先执行定时任务1,定时任务1执行结束后再执行定时任务2。

2、并行

<task:scheduler id="scheduler" pool-size="10" />
<task:scheduled-tasks scheduler="scheduler" >
      <task:scheduled ref="className1" method="methodName1" cron="0 0/5 * * * ?"/>
      <task:scheduled ref="className2" method="methodName2" cron="0 0 12 * * ?"/>
</task:scheduled-tasks>

如上所示为两个并行的定时任务,两个定时任务没有先后顺序,可以同时执行。pool-size="10"  为同时执行定时任务的最大数量。

以上就是关于spring定时任务的串行和并行的配置。

如果我写的内容有问题或者不足的地方,欢迎指出。谢谢。

原文地址:https://www.cnblogs.com/lizs0314/p/11445406.html

时间: 2024-10-02 06:27:53

spring定时任务(scheduler)的串行、并行执行的相关文章

spring定时器任务多任务串行执行问题排查

原文:https://www.cnblogs.com/youtianhong/p/6027249.html 最近发现个生产问题,定时器任务某些任务没有及时执行.经过研究排查发现spring 定时器任务scheduled-tasks默认配置是单线程串行执行的,这就造成了若某个任务执行时间过长,其他任务一直在排队,业务逻辑没有及时处理的问题. 如下是scheduled定义了3个任务. <task:scheduled-tasks > <task:scheduled ref="myTa

Quartz定时任务的并行与串行

Quartz定时任务的执行策略有并行和串行之分. 所谓并行是指多个任务同时运行的情况,即若两个任务的执行时间存在重叠,两个任务同时运行的情况. 串行则是指一个任务必须等其前一个任务执行完毕之后再执行的策略. Spring集成Quartz时,控制定时任务的并行和串行是通过concurrent(译:同时发生的; 同时完成的; 同时存在的)属性实现的. 当任务系统存在多个定时任务时,任务执行很可能会存在时间上的重叠,通过设置concurrent属性为false,可以避免任务并行执行,job只能在其前一

oracle中并行执行不一定比串行执行快

并行执行与串行执行相比,能否缩短执行时间,取决于如下几个方面:1.待执行的目标SQL是否适合并行执行,有些SQL是不太适合并行执行的,比如走索引的嵌套循环连接.2.数据库服务器上的硬件资源(如CPU.内存.I/O等)是否还有富余.3.并行执行时,是否最大化地利用了数据库服务器上的硬件资源(但同时又不能使数据库服务器上的硬件资源消耗殆尽).4.待执行的目标SQL的并行执行计划是否为当前情形下的最优执行计划. 原文地址:https://www.cnblogs.com/qinjf/p/8414654.

并行执行、串行执行和并发执行

并发执行是多道程序系统中多个程序(逻辑上互相独立)或者一个程序中的多个程序段在执行的过程当中,时间互相重叠,一个程序执行没结束,另一个已经开始. 并行执行是指一组程序按照独立的,不同步的速度执行,时间上不重叠: 串行就是指令一个一个的执行.并行是指令同时并行执行. 总结: 并发是指多个线程轮流执行(单核CPU): 并行是指多个线程同时执行(多核CPU),微观上是同时的: 串行是指一个一个的执行,处理完一个才能处理下一个,不轮换: 原文地址:https://www.cnblogs.com/feix

线程并行执行转为串行的法宝 join()

如果没有经过特殊处理,线程和线程之间是并行运行的,如何让它们串行执行呢? (1)一种是使用无参的join(),等到另一个线程执行完毕再继续运行: (2)一种是使用带参的join(long millis) ,等待一定的时间后,无论另一个线程是否执行完毕,都继续执行. public class Thread1 extends Thread { @Override public void run() { System.out.println("线程Thread1开始执行"); try { T

loadrunner多场景的串行执行以及定时执行

方法一: 既然是脚本串行执行,那在场景设计中必然是要用多个脚本,要注意的是需要将Scenario Schedule中的Schedule by设置为Group的模式.然后按实际需要依次设置每个脚本的Schedule.要事先计算好每个脚本的整个执行时间,方便定义后续脚本的开始时间(设置Start Group). 方法二: 使用定时任务执行: 首先创建并设置好要跑的个测试场景,再创建一个一个批处理程序按先后顺序调用这几个个场景进行测试,最后通过Windows的定时任务设定批处理的执行时间 写一个批处理

(转)Spring定时任务的几种实现

Spring定时任务的几种实现 转自http://gong1208.iteye.com/blog/1773177 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合 spring框架来介绍. 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.

数据库管理(事务、ACID、并发、封锁、可串行化、隔离)(转)

1.数据库事务 1.1 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作. 1.2 事务的4个特性(ACID): (1)原子性(atomic)(atomicity)事务必须是原子工作单元:对于其数据修改,要么全都执行,要么全都不执行.通常,与某个事务关联的操作具有共同的目标,并且是相互依赖的.原子性消除了系统处理操作子集的可能性. (2)一致性(consistent)(consistency)事务在完成时,必须使所有的数据都保持一致状态.事务结束

spring定时任务的几种实现方式

Spring定时任务的几种实现 近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合 spring框架来介绍. 一.分类 从实现的技术上来分类,目前主要有三种技术(或者说有三种产品): Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行.一般用的较少,