假如execute方法中需要一些额外的数据怎么办?比如说execute
中希望发送一封邮件,但是我需要知道邮件的发送者、接收者等信息?
存在两种解决方案:
1.JobDataMap类:
每个JobDetail都关联了一个JobDataMap实例,JobDataMap是java.util.Map的子类,基本上是提供key-value形式的数据,并提供了一些便利方法(主要是对java基本数据类型的支持,如put(String key,int value)),当开发人员创建JobDetail的时候,可以把附加信息放到JobDataMap中,那么在execute方法中可以根据key找到需要的值。
JobDetail job = new JobDetail....
job.getJobDataMap().put("from","snowway@vip.sina.com");
...
在execute中
String from = jobExecutionContext.getJobDetail().getJobDataMap().getString("from");
....
不过,当你使用数据库存储JobDetail的时候(默认情况下使用RAM),这里有一个致命的弱点,你不能把没有实现java.io.Serializable的对象放入JobDataMap中,因为Quartz将使用Blob字段保存(也可以通过配置文件关闭)序列化过的JobDataMap中的对象。比如你在execute方法中需要一个java.sql.Connection接口实例,这种情况也是普遍的,那么通常情况下你不能把Connection放入JobDataMap,即使你只想在execute中使用。(注:读者可暂时认为上面这段话是正确的,然而可以通过指示quartz改变这种行为,那属于高级话题)
2.假如你需要一个java.sql.Connection,用于在execute中完成某些操作,那么你可以把Connection放入Quartz的SchedulerContext中,execute也可以访问,并且Quartz不会持久化SchedulerContext中的任何东西。
scheduler.getContext().put("java.sql.Connection",connection);
execute中
Connection con = (Connection)jobExecutionContext.getScheduler().getContext().get("java.sql.Connection");
分享到:
相关推荐
Quartz(任务调度)使用培训(东南融通)..
quartz定时任务使用例子大全,这里面介绍了三种...你只需要在自己的数据库中执行以下对应的sql文件,然后修改一下自己的数据库连接信息就可以直接执行了,而且还附带了quartz学习的ppt,让你以最快的方式学会使用它!
quartz quartz-1.6.5使用手册只是部分,后面的待续完毕。
赠送jar包:quartz-2.3.2.jar; 赠送原API文档:quartz-2.3.2-javadoc.jar; 赠送源代码:quartz-2.3.2-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
关于spring中quartz的配置
赠送jar包:quartz-2.3.0.jar; 赠送原API文档:quartz-2.3.0-javadoc.jar; 赠送源代码:quartz-2.3.0-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
springboot中使用quartz,包括持久化和非持久化操作 解决service注入问题 介入指定job中传入参数问题
Quartz中文教程学习,初学者最实用了
Quartz定时功能在WebForm 以及 WinForm上使用时,需要引用相关的dll
Quartz使用指南 Quartz使用指南 Quartz使用指南
内含: quartz-1.5.2.zip 定时器Quartz及使用说明 Quartz的API
Quartz使用详解 Quartz使用详解 Quartz使用详解 Quartz使用详解 Quartz使用详解 Quartz使用详解
Quartz +spring开发使用说明文档
.NetCore 中使用QuartZ
QuartzAPI中文chm文档,快速学习Quartz的常用工具
有了它,quartz不再抽象。 资源来自于互联网,Chuck Cavaness 著 Unmi(隔叶黄莺) 译 。 主要内容: 1.quartz起步和简单示例 2.Job部署、存储和持久化 3.Cron触发器及相关内容 ...7.工作流中使用Quartz 8.附录:配置参考
Quartz的最简使用说明,用了两个Job,添加了14个Trigger。一个例子你就明白怎么使用的了~
quartz定时任务,在web项目中的使用方法;有例子和包直接拿到工程里陪陪就能用
Quartz使用方法Quartz使用方法Quartz使用方法Quartz使用方法Quartz使用方法
quartz定时任务使用