spring Quartz和 Spring Task定时任务
来源:互联网 发布:linux rps是什么意思 编辑:程序博客网 时间:2024/05/16 01:21
spring Quartz 和 Spring Task执行时间对比:
1. Quartz设置同步模式时:一个任务的两次执行的时间间隔是:“执行时间”和“trigger的设定间隔”的最大值
2. Task默认同步模式:一个任务的两次执行的时间间隔是:“执行时间”+“trigger的设定间隔”,即一个任务完成执行后,才开始trigger计时
Spring Quartz 特点:
1. 默认多线程异步执行
2. 一个任务在上一次调度未完成执行,下一次调度时间到时,会另起一个线程开始新的调度。在业务繁忙时,一个任务或许会有多个线程在执行,导致数据处理异常。
3. 单任务同步:配置属性,可以使一个任务的一次调度在未完成时,而不会开启下一次调度
4. 多个任务同时运行,任务之间没有直接的影响,多任务执行的快慢取决于CPU的性能
5. SchedulerFactoryBean不能使用注解来配置?还是我没找到注解的方法?
Spring Task特点:
1. 默认单线程同步执行
2. 一个任务执行完上一次之后,才会执行下一次调度
3. 多任务之间按顺序执行,一个任务执行完成之后才会执行另一个任务
4. 多任务并行执行需要设置线程池
5. 全程可以通过注解配置
Spring Quartz配置:
1. 配置Job,job的targetObject可以使用spring注解@Service(value = “findObjectService”)配置的bean
2. 配置Trigger
3. 配置Scheduler
核心概念
Quartz核心的概念:scheduler任务调度、Job任务、Trigger触发器、JobDetail任务细节
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="findObjectJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="findObjectService" />
<property name="targetMethod" value="startJob" />
<property name="concurrent" value="false" />
</bean>
<bean id="findObjectTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="findObjectJob" />
<property name="repeatInterval" value="1000" />
<property name="startDelay" value="5000" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="findObjectTrigger" />
</list>
</property>
</bean>
Spring Task配置:
1. 执行方法添加@Scheduled注解
2. 配置线程池
@Scheduled(cron = "0/1 * * * * ? ")
public void startJob() {......}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd">
<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="5" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
<context:annotation-config />
<context:component-scan base-package="com.test1,com.test2"/>
1. Quartz设置同步模式时:一个任务的两次执行的时间间隔是:“执行时间”和“trigger的设定间隔”的最大值
2. Task默认同步模式:一个任务的两次执行的时间间隔是:“执行时间”+“trigger的设定间隔”,即一个任务完成执行后,才开始trigger计时
Spring Quartz 特点:
1. 默认多线程异步执行
2. 一个任务在上一次调度未完成执行,下一次调度时间到时,会另起一个线程开始新的调度。在业务繁忙时,一个任务或许会有多个线程在执行,导致数据处理异常。
3. 单任务同步:配置属性,可以使一个任务的一次调度在未完成时,而不会开启下一次调度
4. 多个任务同时运行,任务之间没有直接的影响,多任务执行的快慢取决于CPU的性能
5. SchedulerFactoryBean不能使用注解来配置?还是我没找到注解的方法?
Spring Task特点:
1. 默认单线程同步执行
2. 一个任务执行完上一次之后,才会执行下一次调度
3. 多任务之间按顺序执行,一个任务执行完成之后才会执行另一个任务
4. 多任务并行执行需要设置线程池
5. 全程可以通过注解配置
Spring Quartz配置:
1. 配置Job,job的targetObject可以使用spring注解@Service(value = “findObjectService”)配置的bean
2. 配置Trigger
3. 配置Scheduler
核心概念
Quartz核心的概念:scheduler任务调度、Job任务、Trigger触发器、JobDetail任务细节
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="findObjectJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="findObjectService" />
<property name="targetMethod" value="startJob" />
<property name="concurrent" value="false" />
</bean>
<bean id="findObjectTrigger"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="findObjectJob" />
<property name="repeatInterval" value="1000" />
<property name="startDelay" value="5000" />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="findObjectTrigger" />
</list>
</property>
</bean>
Spring Task配置:
1. 执行方法添加@Scheduled注解
2. 配置线程池
@Scheduled(cron = "0/1 * * * * ? ")
public void startJob() {......}
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.1.xsd">
<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="5" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
<context:annotation-config />
<context:component-scan base-package="com.test1,com.test2"/>
阅读全文
0 0
- spring Quartz和 Spring Task定时任务
- spring中quartz和task定时任务
- quartz springh和 spring-task 定时任务
- 【Spring】Quartz和Task实现定时任务
- 定时任务Quartz和spring task
- JAVA定时任务Timer、Spring Task、Quartz
- 定时任务之Timer,Quartz,Spring task
- SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务
- SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务
- SpringMVC整合Quartz实现定时任务和Spring自带Task定时任务
- spring实现自动定时任务调度【Spring Task】【Quartz】
- Spring定时任务的几种实现 spring框架 quartz spring spring-task 定时任务 注解
- Spring Task 定时任务
- Spring-Task 定时任务
- spring task 定时任务
- Spring Task定时任务
- Spring Task定时任务
- Spring Task定时任务
- vi/vim的常用快捷键
- XTU.apk.apk逆向writeup
- QT读取身份证信息
- NLP14-基于Gensim中的Doc2Vec的试探
- Servlet第一个程序--实践操作(命令行)
- spring Quartz和 Spring Task定时任务
- css3多列布局
- pythoQT5 github project
- java三种排序算法的实现
- poj_1258_prime_就是dj减配版
- restful架构
- [Err] 2006
- Python用于文本分析的一个demo—统计文档中只出现一次的字符
- At least one JAR was scanned for TLDs解决方法