首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >石英能力

石英能力
EN

Stack Overflow用户
提问于 2017-01-16 16:09:21
回答 1查看 54关注 0票数 0

我正在尝试使用Java创建Quartz调度程序,它将能够调用API并传递数据。

我对石英完全陌生,但现在我明白了工作的概念和如何创造一个。我理解触发器的概念以及如何触发触发器,我也了解调度程序是如何工作的。

我遇到的困难是如何传递需要传递给API的信息。我有一个调用API的例子,数据被输入到DB中,但是信息已经硬编码到类中,被传递到JobDetails中。

即。用户向系统传递一条消息,需要在12小时内(而不是在此之前)发送给用户,所以我计划创建一个作业和一个触发器,将执行时间设置为12小时。如何将消息传递给调度程序?这条消息应该存储在哪里?我想做的事有可能吗?我有没有误解夸兹能做什么?

谢谢您抽时间见我。如能提供任何协助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-16 18:59:14

看看JobDataMap。如果要为每个用户操作创建一个新作业,则可以将消息存储在其中,该消息将在执行过程中可用。

JobDataMap保存职务实例的状态信息。 在将作业添加到调度程序时,只存储一次JobDataMap实例。在每次执行带有@PersistJobDataAfterExecution注释的作业后,它们也会被重新持久化。 JobDataMap实例也可以用触发器存储。如果您有一个存储在调度程序中的作业,以便多个触发器定期/重复使用,则这一点可能很有用,但是对于每个独立的触发,您希望为作业提供不同的数据输入。 在执行时传递给作业的JobExecutionContext还包含一个方便的JobDataMap,它是将触发器的JobDataMap (如果有的话)的内容合并到作业的JobDataMap (如果有的话)的结果。

如果您有一个任务,但是对于要创建一个新触发器的每个用户操作,您可以遵循给定的这里解决方案。

第三个选项是,对于每个用户操作,持久化消息和时间发送电子邮件到数据库。有一个定期运行的作业,并在数据库中扫描必须发送电子邮件的合格记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41680506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档