`

Quartz之AnnualCalendar

阅读更多
问题1 我想排除一年中的某一天,怎么办呢!
Quartz:使用AnnualCalendar进行相应的设置
参考资料
1 Quartz入门简介三
http://wwwzchen.iteye.com/blog/846099
2 quartz 学习笔记
http://chinaxxren.iteye.com/blog/897989
Quartz的BaseCalendar层次结构如下:

在本例中主要用到了AnnualCalendar,它的作用是排除排除每一年中指定的一天或多天.
AnnualCalendar类说明如下:
This implementation of the Calendar excludes a set of days of the year. You may use it to exclude bank holidays which are on the same date every year. 

其它相应的有:CronCalendar(表达式),DailyCalendar(指定的时间范围内的每一天),HolidayCalendar(排除节假日),MonthlyCalendar(排除月份中的数天),WeeklyCalendar(排除星期中的一天或多天)
具体代码如下:
 //法定节日是以每年为周期的,所以使用AnnualCalendar  
        AnnualCalendar holidays = new AnnualCalendar();        
        // ②五一劳动节  
        Calendar laborDay = new GregorianCalendar();  
        laborDay.add(Calendar.MONTH, 5);  
        laborDay.add(Calendar.DATE, 1);  
        // ②-1:排除的日期,如果设置为false则为包含  
        holidays.setDayExcluded(laborDay, true);  
        // ③国庆节  
        Calendar nationalDay = new GregorianCalendar();  
        nationalDay.add(Calendar.MONTH, 10);  
        nationalDay.add(Calendar.DATE, 1);  
        // ③-1:排除该日期  
        holidays.setDayExcluded(nationalDay, true);          
        //添加到时间集合到任务调度器中
        sched.addCalendar("holidays", holidays, false,false);           
        //当前时间15秒后运行
        Date startTime = nextGivenSecondDate(null, 15);
        //绑定任务
        JobDetail job = newJob(SimpleJob.class)
            .withIdentity("job1", "group1")
            .build();        
        //触发器
        SimpleTrigger trigger = newTrigger() 
            .withIdentity("trigger1", "group1")
            .startAt(startTime)
            .withSchedule(simpleSchedule()
                    .withIntervalInHours(1)//重复间隔:小时为单位
                    .repeatForever())
            .modifiedByCalendar("holidays")
            .build();        
       
        //运行时间
        Date firstRunTime = sched.scheduleJob(job, trigger);       
        log.error(job.getKey() +
                " will run at: " + firstRunTime +  
                " and repeat: " + trigger.getRepeatCount() + 
                " times, every " + trigger.getRepeatInterval() / 1000 + " seconds");        
      
        //启动调度器
        sched.start();
  • 大小: 9 KB
分享到:
评论

相关推荐

    quartz-2.3.2-API文档-中文版.zip

    赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.2.pom; 包含翻译后的API文档:quartz-2.3.2-javadoc-API...

    quartz指南,Quartz 工程

    文件里面包括 1:Quartz开发指南.pdf 2:Quartz从入门到进阶.pdf 3:QuartzBeginnerExample一个附带的工程例子 4:quartz-1.6.1.zip Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它...

    quartz-1.6.0.jar和quartz-all-1.6.0.jar

    该压缩包内包含两个quartz的jar包, 分别是quartz-1.6.0.jar和quartz-all-1.6.0.jar

    quartz-2.3.0-API文档-中文版.zip

    赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar; 赠送Maven依赖信息文件:quartz-2.3.0.pom; 包含翻译后的API文档:quartz-2.3.0-javadoc-API...

    quartz-2.2.3版本的quartz初始化sql语句

    quartz-2.2.3版本的quartz初始化sql语句

    quartz简单实例quartz简单实例

    quartz简单实例quartz简单实例quartz简单实例quartz简单实例

    Autofac.Extras.Quartz, Quartz.Net的Autofac集成.zip

    Autofac.Extras.Quartz, Quartz.Net的Autofac集成 Autofac.Extras.Quartz用于 Quartz.Net的Autofac集成包。Autofac.Extras.Quartz 为每个石英作业创建嵌套的litefime作用域。 完成作业执行后释放嵌套作用域。这允许...

    自开发实现Quartz Web管理工具

    网上能找到的Quartz Web管理的资料都是使用的一个国外人写的Quartz WebApp的东东,功能也很全面。但是作为自己的应用其实用不了那么多功能,一般我们只要可以定义一个job,指定一个Cron表达式完成工作即可,附带的...

    quartz quartz-1.8.6 dbTables 建表sql

    quartz quartz-1.8.6 dbTables quartz动态任务调度需要的数据库脚本。

    quartz内部表.sql

    quartz内部表.sql。

    quartz1.5,quartz1.6,quartz1.8

    Quartz1.5,Quartz1.6,Quartz1.8。Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个...

    postgres-quartz.sql

    postgres quatrz初始化sql脚本文件、pg、quartz、qrtz_开头的表 配置文件需求修改 #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate org.quartz.jobStore....

    Quartz.NET-2.0

    Quartz.NET框架的核心是调度器。调度器负责管理Quartz.NET应用运行时环境。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz.NET采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器...

    Quartz原理及实例

    Quartz原理及实例,spring4.x+Quartz.2.2.1结合的开发,静态和动态实例

    lucene与quartz例子

    lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子

    关于spring中quartz的配置

    关于spring中quartz的配置

    深入解读Quartz的原理

    深入解读Quartz的原理,定时任务框架是web开发过程中使用很多的框架之一

    Quartz-2.0.2 CSDN下载

    Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。 Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的...

    Quartz之CronExpression详解

    详细介绍CronExpression表达式设定定时任务的规则

    quartz3种调度形式+传参.zip

    quartz自动调度的3种调度形式+传参 1.单纯的quartz调度 2.spring+quartz调度

Global site tag (gtag.js) - Google Analytics