`

spring Quartz&Task之间的对比

 
阅读更多

摘自https://blog.csdn.net/swl979623074/article/details/79466016

Quartz

默认多线程异步执行

单个任务时,在上一个调度未完成时,下一个调度时间到时,会另起一个线程开始新的调度。业务繁忙时,一个任务会有多个调度,可能导致数据处理异常。

多个任务时,任务之间没有直接影响,多任务执行的快慢取决于CPU的性能

触发方式 

SimpleTrigger:value=2000 每隔两秒触发

CronTrigger:value=”0 0 12 * * ?” 每天中午12点触发

需要在配置文件中实现配置Job

能被集群实例化,支持分布式部署

使用JobStoreCMT(JDBCJobStore的子类),Quartz 能参与JTA事务;Quartz 能管理JTA事务(开始和提交)在执行任务之间,这样,任务做的事就可以发生在JTA事务里。

精简配置:定时任务Quartz

 

Task

默认单线程同步执行

单个任务时,当前次的调度完成后,再执行下一次任务调度

多个任务时,一个任务执行完成后才会执行下一个任务。若需要任务能够并发执行,需手动设置线程池

触发方式: 

与Quartz的CronTrigger的表达式类似

可以使用注解标注定时任务

比较:

实现,Task注解实现方式,比较简单。Quartz需要手动配置Jobs。

任务执行,Task默认单线程串行执行任务,多任务时若某个任务执行时间过长,后续任务会无法及时执行。Quartz采用多线程,无这个问题。

调度,Task采用顺序执行,若当前调度占用时间过长,下一个调度无法及时执行; 

Quartz采用异步,下一个调度时间到达时,会另一个线程执行调度,不会发生阻塞问题,但调度过多时可能导致数据处理异常

部署,Quartz可以采用集群方式,分布式部署到多台机器,分配执行定时任务

--------------------- 

作者:萌太隆 

来源:CSDN 

原文:https://blog.csdn.net/swl979623074/article/details/79466016 

版权声明:本文为博主原创文章,转载请附上博文链接!

分享到:
评论

相关推荐

    spring之定时任务实现(spring-task和quartz等不同方式)

    Spring框架提供了一系列工具来支持定时任务的实现,其中包括Spring自带的`spring-task`模块和第三方的Quartz库。下面我们将详细探讨这两种方式以及如何通过注解和非注解的方式进行配置。 首先,`spring-task`是...

    springtask 和 quartz +ssh简单示例

    springtask 和 quartz +ssh简单示例springtask 和 quartz +ssh简单示例springtask 和 quartz +ssh简单示例springtask 和 quartz +ssh简单示例

    Spring Quartz Demo

    4. **定义任务(Job)**:在Spring中,任务通常由实现了`org.springframework.core.task.TaskExecutor`接口的类或者实现了`org.quartz.Job`接口的类来定义。你可以使用`@Component`注解将任务类注册为Spring Bean。 ...

    spring quartz 时间调用框架

    **Spring Quartz时间调用框架详解** Spring Quartz是一个在Spring框架中集成的时间调度插件,它允许开发者方便地创建和管理定时任务。Quartz是Java领域的一款功能强大的作业调度库,而Spring通过其优秀的IoC...

    spring注解Quartz定时执行功能

    在Spring框架中集成Quartz库可以实现强大的定时任务管理功能。Quartz是一个开源的作业调度框架,它允许程序创建和管理任务,以便在特定时间自动执行。Spring通过其优秀的依赖注入(DI)和AOP(面向切面编程)特性,...

    Quartz2.2.1基于Spring注解方式配置Quartz

    另外,Spring的`TaskScheduler`也可以与Quartz结合使用,提供更灵活的控制。 总结,通过上述步骤,我们已经成功地使用Spring注解配置了Quartz2.2.1,实现了基于注解的任务调度。这种方式简化了配置,使得任务管理和...

    Quartz&Spring

    1. **基于XML配置**:在Spring的配置文件(如`applicationContext.xml`)中,引入Quartz的相关bean定义,并且可以通过`<task:scheduled-tasks>`或`<task:annotation-driven>`标签来定义定时任务。 2. **基于注解...

    spring-quartz定时设置详细说明

    2. 管理任务:可以通过 Spring 的 `TaskScheduler` 或 `ThreadPoolTaskScheduler` 来管理任务,或者直接使用 Quartz 提供的 API 进行操作,如暂停、恢复、删除任务。 通过上述步骤,你可以实现基于 Spring 的 ...

    spring task quartz

    【Spring Task与Quartz:构建高效任务调度系统】 在Java后端开发中,有时我们需要执行定时任务,例如定期清理缓存、发送邮件或者执行数据同步等。Spring框架为我们提供了两种强大的定时任务解决方案:Spring Task...

    Spring-quartz-demo Spring4.1.6 + quartz2.2.1

    本项目来源与网络,本人对项目...直接通过mvn 倒入项目,在Spring-quartz-demo\src\main\webapp\sql 有sql 建立数据库,表 启动tomcat 直接访问http://localhost:8080/Spring-quartz-demo/task/taskList.htm 就可以使用

    Spring Quartz 任务调度

    **Spring Quartz 任务调度** Spring Quartz 是一个基于 Java 的任务调度框架,它允许开发者定义定时任务并在应用程序中灵活地调度这些任务。这个框架是 Spring 和 Quartz Scheduler 的集成,提供了与 Spring 框架的...

    Spring Quartz 调度器

    在Spring中,Job通常是一个实现了Spring的`org.springframework.core.task.Task`接口或者Quartz的`org.quartz.Job`接口的bean。这个bean将在Quartz调度器触发时执行。 ```java public class MyJob implements Job {...

    Spring+Quartz定时任务学习文档+实例+jar包

    首先,Spring集成Quartz主要通过Spring的TaskExecution和TaskScheduling模块,这使得我们可以利用Spring的依赖注入和AOP特性来更好地管理和控制定时任务。在Spring中配置Quartz,我们通常需要以下几个步骤: 1. ...

    Spring quartz1.6.jar(java定时任务)

    通过Spring的`<task:annotation-driven>`或`<task:scheduler>`标签,我们可以方便地定义定时任务,并利用Spring的依赖注入(DI)来注入所需的依赖。 1. **配置Spring与Quartz的集成**: - 创建Spring配置文件,...

    定时框架spring+quartz

    Spring框架提供了多种方式来管理定时任务,包括使用Spring的`@Scheduled`注解和Spring Task模块。然而,当项目对定时任务的需求变得更加复杂时,例如需要更精细的控制、集群环境下的任务调度,Quartz则成为更好的...

    Java应用:Java调度任务和Spring Quartz (2)

    Spring框架提供了对任务调度的强大支持,其中Spring Quartz是一个常用的集成解决方案。本篇将深入探讨如何使用Java和Spring Quartz来配置和调度cron任务。 首先,我们需要理解Spring Quartz的核心组件。`Job`接口...

    Spring整合Quartz Job以及Spring Task的实现方法

    Spring整合Quartz Job以及Spring Task的实现方法 Spring Framework是Java开发中最流行的框架之一,它提供了许多强大的功能来帮助开发者快速构建企业级应用程序。在企业级应用程序中,定时任务是一个非常重要的组件...

    Spring的定时任务开发及对Quartz和Timer支持

    在【标题】"Spring的定时任务开发及对Quartz和Timer支持"中,涉及到的是Spring在处理定时任务方面的特性,这在企业级应用中非常常见,用于执行一些周期性的后台任务,如数据同步、报表生成、清理任务等。 首先,...

    Spring中Quartz的配置

    <bean id="jobTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <value>work <!-- 定义触发时间 --> <bean id="doTime" class="org.springframework....

Global site tag (gtag.js) - Google Analytics