Quarzt:在调度作业之前/之后存储JobDataMap

时间:2017-06-02 13:41:09

标签: java quartz-scheduler job-scheduling

有没有办法在没有触发/安排任何工作的情况下坚持JobDataMap?之后(在回调时)我可以使用存储的Job启动JobDataMap吗?

我通过Quartz安排了很多工作,我将JobDataMap传递给那些工作:

scheduler.triggerJob(new JobKey("job-name", "job-group"), myJobDataMap);

现在我需要实现作业队列,因为有些作业无法并行启动。问题是某些作业的状态(JobDataMap)是从客户端传递的,应该保留用于排队目的。另一方面,我不能根据用户请求安排工作,因为我不知道什么时候应该执行! (它应该在上一个工作后立即执行)

1 个答案:

答案 0 :(得分:1)

您可以使用方法addJob(JobDetail, boolean)向调度程序添加新作业,而无需实际安排它。引用文档:

  

Job将处于休眠状态'直到按Trigger计划,或Scheduler.triggerJob()被调用。

您的数据地图将成为JobDetail参数的一部分。