Quartz:存储 JobDataMap before/without 调度作业

Quarzt: store JobDataMap before/without scheduling a job

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

我用 Quartz 安排了很多工作,我将 JobDataMap 传递给这些工作:

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

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

是的。

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

The Job will be 'dormant' until it is scheduled with a Trigger, or Scheduler.triggerJob() is called for it.

您的数据映射将成为 JobDetail 参数的一部分。