有没有办法在没有触发/安排任何工作的情况下坚持JobDataMap
?之后(在回调时)我可以使用存储的Job
启动JobDataMap
吗?
我通过Quartz安排了很多工作,我将JobDataMap
传递给那些工作:
scheduler.triggerJob(new JobKey("job-name", "job-group"), myJobDataMap);
现在我需要实现作业队列,因为有些作业无法并行启动。问题是某些作业的状态(JobDataMap
)是从客户端传递的,应该保留用于排队目的。另一方面,我不能根据用户请求安排工作,因为我不知道什么时候应该执行! (它应该在上一个工作后立即执行)
答案 0 :(得分:1)
是
您可以使用方法addJob(JobDetail, boolean)
向调度程序添加新作业,而无需实际安排它。引用文档:
Job
将处于休眠状态'直到按Trigger
计划,或Scheduler.triggerJob()
被调用。
您的数据地图将成为JobDetail
参数的一部分。