`
aqingsao
  • 浏览: 174794 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Quartz Job之cron/Fixed Interval/Fixed Delay

    博客分类:
  • Java
阅读更多

对应用中的调度任务应该有3种:基于cron的;固定间隔的(Fixed Interval);固定延时的(Fixed Delay)。

1. 基于cron

这比较容易理解,只需要给出一个cron的表达式,就可以根据表达式去执行。比如

"0 0 12 ? * WED" 代表"每周三的12:00”

它的几个部分分别代表:秒、分、小时、基于月的天;月;基于周的天;年(可选)

如果你使用Quartz,可以参考Cron Trigger一章

 

2. 固定间隔的

这个也很常用,比如每天执行一次,每小时执行一次。在Quartz中,有对应的SimpleTrigger ,可以指定开始结束时间和重复间隔,比如:new SimpleTrigger("trigger name", "group name", startDate, endDate, repeatCount, repeatInterval)

 

3. 固定延时的

固定延时是指当前Job结束后,过固定的时间再执行下一次任务。

可惜的是,Quartz本身并不提供固定延时机制。所以只能根据情况hack。

 

最近项目遇到的一个问题是,本来想使用固定间隔,但是Job本身是长时的,有可能间隔时间到了,当前Job仍在执行。这时,如果启动新的Job,可能会引起状态不一致。

针对这种情况,因为同时执行会有状态不一致的问题,所以之需要保证Job不同时执行就好了。所以可以在上一个Job结束后再立即执行新Job。

解决方法就是让你的Job实现StatefulJob。因为是有状态的,Quartz会在标记该Job状态为“blocked”,直到Job结束,彩会改成“Awaiting”。所以只有上一个Job结束后才会执行下一个。

 

分享到:
评论

相关推荐

    quartz/Cron/Crontab表达式在线生成工具

    因此,"quartz/Cron/Crontab表达式在线生成工具"提供了一个方便的解决方案。这个纯HTML和CSS构建的工具可以帮助开发者快速生成和测试Cron表达式。通过输入期望的执行时间,工具会自动生成相应的Cron表达式,大大提高...

    quartz定时任务cron表达式

    在Quartz中,我们可以使用`CronTrigger`类来创建基于cron表达式的触发器,并将其与作业(Job)关联,从而定义定时任务。`CronTrigger`的构造函数通常接受cron表达式字符串作为参数。 在实际应用中,理解并熟练掌握...

    Quartz中的cron-like表达式解析 cron-like unix-like c#

    在Quartz中,cron-like表达式是一种强大的工具,用于定义任务的执行计划,类似于Unix系统的cron作业调度。Cron-like表达式在C#中得到了很好的实现,使得.NET开发者也能享受到这种灵活的调度能力。 在Unix系统中,...

    quartz使用cron表达式的实例

    本文将深入探讨如何使用Quartz配合cron表达式来实现定时任务的实例。 首先,我们要理解cron表达式。Cron表达式是Unix系统中的定时任务调度工具,也被Quartz框架所采用。它由六个或七个子表达式组成,每个子表达式...

    quartz2.2/struts2/spring的整合demo

    quartz2.2/struts2/spring的整合demo,包含一个job和多个job的创建,已经测试过了,可以使用........ quartz2.2/struts2/spring的整合demo,包含一个job和多个job的创建,已经测试过了,可以使用........ quartz2.2/...

    Quartz Cron 生成工具

    总的来说,Quartz Cron生成工具是Java开发者必备的辅助工具之一,它能有效提高工作效率,减少错误,让定时任务的配置变得更加简单。在实际开发中,合理利用这一工具,可以更好地管理和调度后台任务,从而提升系统的...

    quartz的cron表达式生成工具

    Cron表达式是Quartz中一个重要的概念,用于定义这些定时任务的执行计划。Cron表达式源自Unix系统的crontab命令,用于配置定时任务,而在Quartz中,它被用来更加灵活地设定作业的触发时间。 标题提到的"quartz的cron...

    quartz 的cron生成器代码

    Quartz 的强大之处在于它的灵活性和可扩展性。除了CRON表达式,它还支持简单触发器、复合触发器以及基于日历的触发器。同时,Quartz允许你创建复杂的作业链,使得一个任务完成后可以触发另一个任务。 此外,Quartz...

    Quartz Cron表达式生成器(.NET) 附上源码

    Quartz是一款广泛应用于Java和.NET平台...掌握Quartz和Cron表达式是提升应用程序智能化和自动化水平的关键技能之一。通过实践和理解QuartzCron项目,开发者不仅能提高工作效率,还能深入理解任务调度的原理和实现方式。

    quartz通过cron实现web项目定时器

    1. **Job**:在Quartz中,Job是一个实现了`org.quartz.Job`接口的类,它代表了一个具体的任务。你需要定义一个Job类,并重写`execute(JobExecutionContext context)`方法,这个方法会在触发器触发时被调用,执行实际...

    quartz定时任务cron表达式相关内容

    而cron表达式则是Quartz中用于定义任务执行时间的重要工具。 cron表达式是一种强大的、灵活的时间调度语法,源自Unix系统的crontab命令。它由七个子表达式组成,每个子表达式定义了一个不同的时间元素(秒、分、...

    quartz cron js生成器

    Quartz Cron JS生成器是一个非常实用的工具,主要用于在JavaScript环境中创建和管理基于Quartz Cron表达式的定时任务。Quartz是Java平台上的一个开源作业调度框架,而Cron表达式则是Unix/Linux系统中用于设置定时...

    Quartz_cron表达式

    ### Quartz Cron 表达式详解 #### 一、概述 Quartz是一款强大的开源作业调度框架,广泛应用于Java应用程序中,用于实现定时任务的功能。Quartz支持多种触发器类型,其中最为灵活且功能强大的是CronTrigger,它允许...

    quartz的cron表达式

    ### quartz的cron表达式知识点详解 #### 一、cron表达式概述 cron表达式是一种用于配置定时任务执行规则的语言,广泛应用于Quartz等调度框架中。通过cron表达式,我们可以非常灵活地定义任务的执行时间,包括精确到...

    Quartz Job Scheduling Framework 中文版 V1.0.0.rar

    Quartz提供了多种类型的Trigger,如SimpleTrigger(简单触发器)、CronTrigger(基于Cron表达式的触发器)等,它们可以按照预设的时间间隔或特定的日期和时间触发Job。 3. **Scheduler(调度器)**:Scheduler是...

    Quartz Job Scheduling Framework 中文版 V0.9.2

    Quartz Job Scheduling Framework 是一个开源的作业调度框架,它为Java应用程序提供了强大的定时任务管理功能。这个中文版V0.9.2的文档可能是针对Quartz的一个早期版本的翻译,帮助中国开发者更好地理解和使用这一...

    定时器quartz的使用方法

    quartz.job.trigger.interval=5 # 单位为秒 ``` 然后在Java代码中读取这个配置值,动态生成Cron表达式,这样就可以实现启动时自动调用并按照配置的时间间隔重复执行任务。 总结起来,Quartz通过提供`Job`和`...

    Quartz Cron 表达式生成,Cron在线编辑器

    Quartz Cron表达式是Java定时任务库Quartz的重要组成部分,用于定义定时任务的执行规则。Cron表达式是一种字符串格式,由七个子表达式组成,分别代表秒、分、小时、日、月、周和年,允许指定一个精确的时间调度。...

    Quartz Job Scheduling Framework 中文版

    Quartz Job Scheduling Framework 是一个强大的、开源的Java作业调度框架,它允许应用程序定义和执行复杂的定时任务。这个框架的设计目标是提供一个简单且可扩展的解决方案,用于在分布式环境中调度作业。Quartz的...

    quartz job持久化

    实现把job持久化数据库,里面有具体的说明文档 Quartz 1 1 通过quartz创建持久化定时...1.3.1 实现org.quartz.Job接口 6 1.3.2 把以上job持久化到数据库中 6 1.4 启动job所需条件 6 1.4.1 在web.xml中加入如下监听 6

Global site tag (gtag.js) - Google Analytics