对quartz 的理解

1. quartz (开源项目)
    1. 百度解释 : Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,
        它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来
        创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。
        Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.0。
        
    2.个人理解:
        quartz 就是做日程管理的;
        日程: 什么时间干什么事,执行频率是怎么样,执行频率是依据时间还是依据日历?
        概念阐述:
            1. job: 就是要干的事情,核心问题; 代码示例:
                // 定义一个job对象
                JobDetail job = JobBuilder.newJob(Demo2job.class)
                        .withIdentity("job1", "group1").build();
            2. trigger: 这触发器不是job触发器,而是频率触发器,就是说它的定义不是
                也不能触发job的执行,而是触发 执行频率的生效,所以确切地说,它不是
                一个触发器,而是一个频率定义器, 它解决了 job被执行后的执行频率问题;
                //关于这个执行频率的定义还有两种:
                    1.依据时间 time 使用: SimpleScheduleBuilder(比如说多长时间间隔执行一次) 代码示例:
                    // 定义一个触发器
                    Trigger trigger = TriggerBuilder
                            .newTrigger()
                            .withIdentity("trigger1", "group1")
                            .startNow()
                            .withSchedule(
                                    SimpleScheduleBuilder.repeatSecondlyForever(1))
                            .build();
                    
                    2.依据日历 calender 使用cron(比如说哪个固定的年/周/月/日/时/分/秒 执行;)
                            // 定义一个触发器
                            Trigger trigger = TriggerBuilder
                                    .newTrigger()
                                    .withIdentity("trigger1", "group1")
                                    .withSchedule(CronScheduleBuilder.cronSchedule("0 52 19 * * ?") )
                                    .build();
                        其中 "0 52 19 * * ?" 是CronExpression 就是Cron表达式:
                            总共7个位:各位表达意义如下:
                                1. 秒 0-59
                                2. 分 0-59
                                3. 时 0-23
                                4. 月中某一天 0-31(这个不是 0-30 吗?)
                                5. 月 0-11 或者英文前三个字母大写: FEB 表示二月 , MAR表示三月
                                6. 周中某一天 1-7 (1表示周日)
                                7. 年
                            注意:   1. * 表示通配全选, 
                                    2. ? 用在day-of-moth 和 day-of-week中, 表示没有指定, 
                                    3. L (last简写) 用在day-of-moth 和 day-of-week中, 表示最后; 
                                    4. / 表示增量 : '3/20' 表示每隔20分钟从第三分钟开始; 等价于: '3,23,43'
                                    5. 月中某一天 和 周中某一天,不能同时 用* 也不能同时用?;必须要有一个指定,有一个不指定;
                                    6. 年 可选项(就是说可以不写);
                                 
            3. scheduler 这个是日程对象:它的作用是:
                1.将job 和 trigger 整合起来,也就是将任务 和 任务执行频率整合起来,
                    就生成了一个日程;代码示例:                
                    scheduler.scheduleJob(job, trigger);
                    
                2.当然它 整合以后可以开启日程 也可以关闭日程:
                    // 调度任务开启
                    scheduler.start();

                    // 调度任务结束
                    scheduler.shutdown();
                    
                    
                    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值