加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用Quartz的动态作业数据

发布时间:2020-12-15 08:39:01 所属栏目:Java 来源:网络整理
导读:当我的进程收到消息时,它需要启动一个计时器并在X秒内执行一些逻辑.这些作业需要存储在JDBC存储中,据我所知,这可能与此问题无关. 根据我读过的内容,我应该能够为一个Job类分配一个具有不同类似属性值的JobDataMap,但是我无法找到任何文档或示例来支持这个用
当我的进程收到消息时,它需要启动一个计时器并在X秒内执行一些逻辑.这些作业需要存储在JDBC存储中,据我所知,这可能与此问题无关.

根据我读过的内容,我应该能够为一个Job类分配一个具有不同类似属性值的JobDataMap,但是我无法找到任何文档或示例来支持这个用例.也许我的Google-fu很弱.

那有意义吗?有一个Job类,并以某种方式存储JobDataMap来填充该Job类并在每个消息的基础上运行它?

解决方法

org.quartz.Trigger既有getJobDataMap()(必要时会新建一个)和setJobDataMap()来获取触发器 JobDataMap.

最简单的用法是:

Trigger t = new SimpleTrigger(...);
t.getJobDataMap().put("foo","bar");

要使用现有的值映射进行初始化:

Map data = new HashMap();
data.put("foo","bar");

t.setJobDataMap(new JobDataMap(data));

在作业执行时获取数据

public void execute(JobExecutionContext context) throws JobExecutionException
{
   String fooValue = context.getMergedJobDataMap().get("foo");
}

Documentation on JobDataMap在教程中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读