




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Quartz插件的使用Quartz 框架提供了几种用于扩展平台能力的方式。通过使用各种 钩子 (通常指的就是扩展点),Quartz 变得很容易被扩展和定制化来适应你的需要。其中一个最简单的扩展框架的方法就是使用 Quartz 插件。本章就来看看如何使用插件机制让 Quartz 进入到之前 Quartz 用户没去过的领域。一、使用Quartz自带插件范例 下面将使用插件实现从XML得到JOB,不用手工的把job和trigger加到Scheduler中去再来运行,这样就很方便。如果要更改任务,直接在xml中配置就可以了。不用再写Java代码。1、首先是job类:java view plain copypackage com.mucfc; import java.util.Date; import java.util.Set; import org.quartz.DisallowConcurrentExecution; import org.quartz.InterruptableJob; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.JobKey; import org.quartz.PersistJobDataAfterExecution; import org.quartz.UnableToInterruptJobException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; PersistJobDataAfterExecution DisallowConcurrentExecution public class SimpleJob implements Job private static Logger log = LoggerFactory.getLogger(SimpleJob.class); private JobKey jobkey=null; Override public void execute(JobExecutionContext context) throws JobExecutionException jobkey = context.getJobDetail().getKey(); (Excuting job: + jobkey + executing at + new Date()+ fire by: +context.getTrigger().getKey(); if(context.getMergedJobDataMap().size()0) Set keys= context.getMergedJobDataMap().keySet(); for (String key : keys) String value= context.getMergedJobDataMap().getString(key); ( jobdatamap entry: +key+ = +value); context.setResult(hello); 2、job触发时间配置,使用quartz_data.xmlhtml view plain copy * * true false TestJob1 com.mucfc.SimpleJob TestDurableJob com.mucfc.SimpleJob true false TestSimpleTrigger1AtFiveSecondInterval TestJob1 -1 5000 TestJob2 GroupOfTestJob2 This is the description of TestJob2 com.mucfc.SimpleJob false true someKey someValue someOtherKey someOtherValue TestSimpleTrigger2AtTenSecondIntervalAndFiveRepeats GroupOfTestJob2Triggers TestJob2 GroupOfTestJob2 2010-02-09T10:15:00 MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT 5 10000 TestCronTrigger2AtEveryMinute GroupOfTestJob2Triggers TestJob2 GroupOfTestJob2 someKey overriddenValue someOtherKey someOtherOverriddenValue 0 * * ? * * TestCronTrigger2AtEveryMinuteOnThe45thSecond GroupOfTestJob2Triggers TestJob2 GroupOfTestJob2 2015-05-12T12:26:00.0 2015-05-16T12:26:00.0 MISFIRE_INSTRUCTION_SMART_POLICY 45 * * ? * * America/Los_Angeles 3、配置文件plain view plain copy#= # Configure Main Scheduler Properties #= org.quartz.scheduler.instanceName: TestScheduler org.quartz.scheduler.instanceId: AUTO org.quartz.scheduler.skipUpdateCheck: true #= # Configure ThreadPool #= org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount: 3 org.quartz.threadPool.threadPriority: 5 #= # Configure JobStore #= org.quartz.jobStore.misfireThreshold: 60000 org.quartz.jobStore.class: org.quartz.simpl.RAMJobStore #org.quartz.jobStore.class: org.quartz.impl.jdbcjobstore.JobStoreTX #org.quartz.jobStore.driverDelegateClass: org.quartz.impl.jdbcjobstore.PostgreSQLDelegate #org.quartz.jobStore.useProperties: false #org.quartz.jobStore.dataSource: myDS #org.quartz.jobStore.tablePrefix: QRTZ_ #org.quartz.jobStore.isClustered: false #= # Configure Datasources #= #org.quartz.dataSource.myDS.driver: org.postgresql.Driver #org.quartz.dataSource.myDS.URL: jdbc:postgresql:/localhost/dev #org.quartz.dataSource.myDS.user: jhouse #org.quartz.dataSource.myDS.password: #org.quartz.dataSource.myDS.maxConnections: 5 #= # Configure Plugins #= org.quartz.plugin.triggHistory.class: org.quartz.plugins.history.LoggingJobHistoryPlugin org.quartz.plugin.jobInitializer.class: org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin org.quartz.plugin.jobInitializer.fileNames: quartz_data.xml org.quartz.plugin.jobInitializer.failOnFileNotFound: true org.quartz.plugin.jobIscanInterval: 120 org.quartz.plugin.jobInitializer.wrapInUserTransaction: false 其中org.quartz.plugin.jobInitializer.class: org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin会自动加载quartz_data.xml中的trigger和job到Scheduler3、测试java view plain copypackage com.mucfc; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import org.quartz.DateBuilder; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Matcher; import org.quartz.Scheduler; import org.quartz.SchedulerFactory; import org.quartz.SchedulerMetaData; import org.quartz.SimpleScheduleBuilder; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.calendar.AnnualCalendar; import org.quartz.impl.matchers.KeyMatcher; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class PluginExample public static void run() throws Exception Logger log = LoggerFactory.getLogger(PluginExample.class); SchedulerFactory sf = new StdSchedulerFactory(); Scheduler sche = sf.getScheduler(); sche.start(); try Thread.sleep(300000L); catch (Exception e) sche.shutdown(); Schedu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 6048-1:2025 EN Information technology - JPEG AI learning-based image coding system - Part 1: Core coding system
- 社区教育机构管理办法
- 工会财会知识竞赛试题标准答案
- 醇醚燃料生产线项目可行性研究报告
- 智能媒体数据分析创新创业项目商业计划书
- 农业废弃物资源化利用技术咨询服务创新创业项目商业计划书
- 智能平板心理健康辅导工具创新创业项目商业计划书
- 智能眼镜健康监测仪创新创业项目商业计划书
- 城市排水工程扬尘治理措施
- 部编版三年级习作:《这儿真美》校园范文
- 铁路专项病害课件
- 2025-2026学年人教版(2024)初中化学九年级上册教学计划及进度表
- 10s管理内容和标准
- 2022中国幽门螺杆菌感染治疗指南
- 组织学技术特殊染色
- 德勤美团-中国医美市场趋势洞察报告-2021.01正式版
- 磁共振成像原理及功能磁共振
- 小学语文人教二年级上册 我最喜爱的玩具
- 2021年成都中医药大学辅导员招聘笔试试题及答案解析
- 高中英语3500词汇表
- 《绣球》课件
评论
0/150
提交评论