quartz配置quartz的xml配置文件怎么写

quartz配置  时间:2021-06-05  阅读:()

如何配置Spring定时器准确运行时间,例如我想它在每天半夜12点运行一次

Spring quartz的配置: 表达式意义 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每月15日上午10:15触发 "0 15 10 L * ?" 每月最后一日的上午10:15触发 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发 每天早上6点 0 6 * * * 每两个小时 0 */2 * * * 晚上11点到早上8点之间每两个小时,早上八点 0 23-7/2,8 * * * 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点 0 11 4 * 1-3 1月1日早上4点 0 4 1 1 * 希望对你有帮助!

谁给个Quartz和Xperl的设置方法

最简单的办法就是找人帮你布局,然后放到你的WTF文件夹里。

否则的话只能全部解锁,然后慢慢拖到喜欢的位置,重现布置界面是需要耐心的。

祝你成功布置出自己喜欢顺手的界面~~

spring3如何配置quartz2的jobListeners?

把下面的 <property name="jobListeners"> <list> <ref bean="searchSplunkJobListener" /> </list> </property> 删掉试一下

Spring Quartz如何动态配置时间(3)

3) 记录时间规则我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。

当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。

4) 更新任务触发器的时间设置到了关键的一步了,也是最简单的一步,一个方法就可以实现了。

首先,我们需要通过trigger的名称得到一个CronTriggerBean;其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入;最后,RESCHEDULE THE JOB,OK!1 /** */ /** 2 * 自定义定时器调度时间 3 * @param triggerName 触发器名称 4 * @throws Exception5 */6 public void updateNotificationInterval(String triggerName, String triggerId) 7 throws SchedulerException, ParseException { 8 // 得到trigger 9 CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger( 10 triggerName, Scheduler.DEFAULT_GROUP); 11 // 得到cron expression 12 String cronExpression = schedulerDAO.getCronExpression(triggerId); 13 // 设置trigger的时间规则 14 trigger.setCronExpression(cronExpression); 15 // 重置job class =.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" > < property name ="targetObject" ref =pareService" /> < property name ="targetMethod" value =pare" /> < property name ="concurrent" value ="false" /> < bean id =pareTrigger" class =.springframework.scheduling.quartz.CronTriggerBean" > < property name ="jobDetail" ref =pareJob" /> < property name ="cronExpression" > < value > 0 39 16 20 * ?

Quartz怎么设置多任务

用quartz实现多任务动态加载 Hudson报表系统二期结束了,这次新增了邮件定制功能,实现此功能的核心在于quartz框架。

Quartz是什么 Quartz是一个用Java编写的任务调度框架,任务调度是什么,举例说明:比如我们需要在每个星期四下午三点时候发周报,我们需要一个系统在两点半的 时候给我们一个发周报的提醒,这个提醒就是一次任务,每周星期四下午两点半的时候自动触发这个任务,这就可以理解为这个系统的一次任务调度。

Quartz 提供给我们定时调度已定义好的任务的能力,如果你了解quartz的调度计划cronExpression表达式的配置,你会感叹quartz的灵活与强 大。

Quartz的应用广泛,对于Hudson报表系统,恰好为邮件定制功能提供强有力的支持。

Quartz的简单使用 在Hudson报表系统的一期中也用到了quartz,不过当时是把任务调度信息写死在配置文件中,每次系统启动后,调度的配置都加载在内存中,没有实现 多任务的动态加载。

我们先以此来说明quartz的基本用法。

Hudson报表系统是用spring框架将quartz整合起来的,故只介绍spring 和quartz的整合使用。

下图为spring配置文件中quartz的配置: 其实quartz的使用主要有三个部分,一个调度器Scheduler,一个要被调度的任务JobDetail,一个触发器Trigger,对上面的配置做一说明,在图中从下到上: 1、 配置一个job,这个job就是我们要调度的任务类, 2、 配置jobDetail,jobDetail需要加载job实现类,并且指定目标方法即完成任务需要执行的方法为execute,在这个方法里面定义我们要做的任务,execute方法需要我们在job类中实现。

3、 配置trigger,用于触发我们定义的任务,在触发器的配置中,我们需要加载需要调度的任务jobDetail,当然还要配置好我们需要触发的时间,触 发的时间配置在cronExperssion表达式中,这个表达式非常灵活与强大,举个例子:我们需要每个工作日早八点到晚八点之间,每半个小时触发一次 任务,我们可以将表达式配置为:0 0/30 8-20 ? * MON-FRI。

这个表达式的详细解释可以登录Hudson报表系统(链接:http://10.232.29.21:8080/hudson-report/),点击邮件信息维护里面的“邮件发送时间计划配置帮助”查看。

4、 配置scheduler,只需要加载trigger即可,可以在list标签下配置多个trigger。

注意,scheduler的配置中有个lazy- init=false的配置,这表明只要我们的spring一启动,quartz的scheduler也跟着启动,否则其值为true的话,会因为惰性加 载的问题,导致quartz不起作用,此项默认值是false。

至此,我们的配置写好了,只需要实现拥有execute方法的job类就可以了。

这种方法也可以实现多任务调度,具体做法为:我们每新增一个调度,就需要在配置文件中多加这个调度相关的配置,这样显然很麻烦。

Quartz的多任务动态加载 先做简要说明: 多个任务的动态加载是指:在当前的scheduler中已经有可触发的任务的情况下,我们需要新增一条任务进去,并且使得新增的任务也立即加载到 scheduler中,等待触发。

要实现这样的功能,上面的方法明显不能达到,而且我们需要使得我们的任务状态持久化,即每次重启quartz后,自动加 载重启前拥有的任务,把任务保存于内存也明显不能达到此目的。

怎么办?添加数据库支持,将信息保存于数据表中。

Quartz的官方文档中提供了在各种类型数据库中建立数据表的sql文件(/docs/dbTables目录下),我们采用MySQL数据库可以选择 tables_mysql_innodb.sql这个文件。

这里需要注意的是编码,quartz默认采用latin1编码,我们一般用urf-8或者 gbk编码,建立表的时候会提示表中存在过长的字段,怎么办,改编码?但我们需要中文字符,所以我们可以将过长的字段长度改为支持的长度即可,现阶段并没 有发现副作用。

建立起来的数据表如下图: 共十二张表,从上到下依次解释: qrtz_blob_triggers: qrtz_calendars:存放日历信息, quartz可配置一个日历来指定一个时间范围。

qrtz_cron_triggers:存放cron类型的触发器 qrtz_fired_triggers:存放已触发的触发器 qrtz_job_details:存放一个jobDetail信息 qrtz_job_listeners:job监听器 qrtz_locks: qrtz_paused_trigger_graps:存放暂停掉的触发器 qrtz_scheduler_state:调度器状态 qrtz_simple_triggers:简单触发器的信息 qrtz_trigger_listeners:触发器监听器 qrtz_triggers:触发器的基本信息 Quartz的触发时间的配置有三种方式: cron的方式:采用cronExpression表达式配置时间; simple的方式,和JavaTimer差不多,可以指定一个开始时间和结束时间外加一个循环时间; calendars方式,可以和cron配合使用,用cron表达式指定一个触发时间规律,用calendar指定一个范围。

我们采用的是cron方式,需要用到的数据表主要是:qrtz_triggers ,qrtz_cron_triggers,qrtz_fired_triggers,qrtz_job_details。

到这里开始讲到底怎么来实现我们的多任务动态加载。

其实我们要实现我们的多任务动态调度根本不需要了解这些表,我们要做的只是实现一个做任务的job类,然后新建一个jobDetail,设置参数,新建一个trigger,设置参数,一起加入到scheduler里面去就行了。

具体过程如下: 1、 建立数据表,配置好数据库连接。

2、 在Spring的配置文件中配置好schedule: 其中dataSource配置的是数据库连接,threadCount配置的是容许同时5个任务触发, startupDelay配置的是触发启动后的时延,这些配置的具体信息大家可以阅读quartz的官方帮助文档来了解。

3、 建立一个用于提供schedule服务的接口ScheduleService及其实现类ScheduleServiceImpl, 这里提供scheduleJob的方法作为示例,以我们的邮件任务为例,我们直接传入一条邮件记录对象,这个对象拥有id,name,收件人,抄送人,主题,还要有一个cronExpression表达式用于定时发送,看具体实现: 在上面的方法中,我们要新增一条邮件任务的时候,拿到这个邮件信息对象,先新建一个JobDetail对象,设置参数,setName方法可以给 jobDetail对象指定一个名字,我们希望一条邮件信息对象对应一个jobDetail,故把邮件信息对象的id传入,否则假如两次新增任务时 jobDetail的名字一样,那么后者会覆盖前者的数据,使得前者失效。

JopDataMap里面可以保存我们需要传入的业务参数,邮件信息的参数就保 存在邮件信息对象里面,所以我们把整个对象传入,最重要的是setJobClass这个方法,设置了要处理我们任务的类,使得任务触发后quartz知道 去哪里执行任务。

最后将此任务加入scheduler。

然后新建一个CronTrigger对象,构造对象的时候就传入trigger自己的名字和所在组,jobDetail的名字和所在组,设置好 cronExpression表达式,这样此trigger就会按此表达式的计划做触发。

需要说明的是:一个jobDetail可以对应多个 trigger,只要在构造时设置trigger名字不同,而jobDetail的名字相同,就可以为相同的jobDetail建立不同的trigger 触发器。

而且对于trigger也可以设置jobDataMap,保存此触发器触发时需要的业务参数。

最后SchedulerJob方法把trigger加入scheduler,等待触发。

quartz的xml配置文件怎么写

使用simpletriggersimpletrigger拥有多个重载的构造函数,用以在不同场合下构造出对应的实例:●simpletrigger(string name, string group):通过该构造函数指定trigger所属组和名称;●simpletrigger(string name, string group, date starttime)...

HostKvm 黑色星期五香港服务器终身六折 其余机房八折

HostKvm商家我们也不用多介绍,这个服务商来自国内某商家,旗下也有多个品牌的,每次看到推送信息都是几个服务商品牌一起推送的。当然商家还是比较稳定的,商家品牌比较多,这也是国内商家一贯的做法,这样广撒网。这次看到黑五优惠活动发布了,针对其主打的香港云服务器提供终身6折的优惠,其余机房服务器依然是8折,另还有充值50美元赠送5美元的优惠活动,有需要的可以看看。HostKvm是一个创建于2013年的...

特网云57元,香港云主机 1核 1G 10M宽带1G(防御)

特网云官網特网云服务器在硬件级别上实现云主机之间的完全隔离;采用高端服务器进行部署,同时采用集中的管理与监控,确保业务稳定可靠,搭建纯SSD架构的高性能企业级云服务器,同时采用Intel Haswell CPU、高频DDR4内存、高速Sas3 SSD闪存作为底层硬件配置,分钟级响应速度,特网云采用自带硬防节点,部分节点享免费20G防御,可实现300G防御峰值,有效防御DDoS、CC等恶意攻击,保障...

RAKsmart含站群服务器/10G带宽不限流量首月半价

RAKsmart 商家估摸着前段时间服务器囤货较多,这两个月的促销活动好像有点针对独立服务器。前面才整理到七月份的服务器活动在有一些配置上比上个月折扣力度是大很多,而且今天看到再来部分的服务器首月半价,一般这样的促销有可能是商家库存充裕。比如近期有一些服务商挖矿服务器销售不好,也都会采用这些策略,就好比电脑硬件最近也有下降。不管如何,我们选择服务器或者VPS主机要本着符合自己需求,如果业务不需要,...

quartz配置为你推荐
打码平台什么是打码平台eagleeye《鹰眼》的男主角是谁?orphanremovalhibernate一对多,操作一的一方,如何删除多的一方的数据。扫图扫图要怎么修图qq网络硬盘我QQ的网络硬盘怎么啦?什么是生态系统生态系统的我主要特征是什么?微信智能机器人有一个人加我微信,他说他自己是图灵机器人,我想问一下这是啥软件怎么可以自动回复微信?labelforhtml标签中lable的for属性有什么作用?河北云办税厅河北省商务厅的人员编制腾讯贴吧QQ贴吧图标灭了后该怎样再点亮?
godaddy域名注册 泛域名绑定 骨干网 php主机 paypal认证 主机屋免费空间 阿里云浏览器 双拼域名 域名转接 免费全能主机 服务器是干什么的 双12 空间首页登陆 免费邮件服务器 yundun 服务器是干什么用的 上海电信测速网站 秒杀品 独立主机 中国linux 更多