美文网首页
quartz整理(一)

quartz整理(一)

作者: 不是明天 | 来源:发表于2019-04-03 11:52 被阅读0次

    1.是什么?

    • 是java开发的开源作业调度框架
    • 可以与java应用结合使用也可以独立部署
    • 能够支持成千上万简单或复杂的定时任务
    • 支持许多企业级功能,如JTA

    2.解决了什么?

    如果应用程序具有需要在给定时刻发生的任务,或者您的系统具有定期维护工作,那么Quartz可能是您理想的解决方案。

    3.与Spring定时任务比较

    Basically, Spring Scheduler (Spring 3.0+) is a truly light weight implementation that will suffice for simple scheduling needs and, it provides annotation support for both Task Scheduling and Asynchronous method execution. It provides support for fixed rate & delay and cron based scheduling. But, Quartz provides support for enterprise level features like JTA and clustering; it comes with JobPersistence (JDBC & RAM stores) which can be used for Fail-safe & Load Balancing purposes.

    来自:https://stackoverflow.com/questions/4385719/spring-scheduling-scheduled-vs-quartz

    3.运行时环境

    • Quartz可以嵌入另一个独立的应用程序中
    • Quartz可以在应用程序服务器(或servlet容器)中实例化,并参与XA事务
    • Quartz可以作为独立程序运行(在自己的Java虚拟机中),通过RMI使用
    • Quartz可以实例化为一组独立程序(具有负载平衡和故障转移功能),用于执行作业

    4.提供了哪些定时任务?

    • 在一天/周/月/年的某个时间
    • 日历中的指定时间
    • 重复指定次数
    • 重复直到一定次数/日期
    • 无限期地重复
    • 以一定的延迟间隔执行

    5.Job执行

    • jobs只需要实现简单Job接口
    • job类能够被Quarz或者应用程序框架实化
    • 当Trigger被触货发或执行完成,实现了JobListener and TriggerListener接口的监听器将执行。
    • job完成之后,返回JobCompletionCode表示成功或失败,可能指定相应的行动。

    6.持久化

    • quartz的设计包括一个JobStore接口,可以实现该接口以提供各种存储作业的机制
    • JDBCJobStore:所有jobs和triggers都存储在数据库
    • RAMJobStore:所有数据存储在内存

    7.事务支持

    • JobStoreCMT(JDBCJobStore的子类)参与JTA事务。
    • quartz可以围绕job执行JTA事务

    8.集群支持

    • Fail-over
    • 负载均衡
    • 内置集群依赖JDBCJobStore
    • Terracotta扩展支持了集群功能,无须数据库(可能failover时可能会造成JobDataMap中的计数无法记录,导致重复执行)

    相关文章

      网友评论

          本文标题:quartz整理(一)

          本文链接:https://www.haomeiwen.com/subject/blvabqtx.html