我有一个工作类,将使用不同的用户输入执行。我意识到我可以在JobDetail和Trigger上指定JobDataMap。所以,如果我理解的话,我的情况有两种选择:
(1)JobDetail上的JobDataMap - 当用户指定新输入和计划时,使用这些输入创建新JobDetail并创建新触发器。然后将新创建的jobDetail和触发器添加到调度程序。
(2)触发器上的JobDataMap - 当用户指定新输入和计划时,使用这些输入创建新触发器,并将触发器添加到已添加的jobDetail的调度程序中。
是否有理由选择一种选择而不是另一种?
谢谢。
根据我的个人经验,我不得不说我们使用第一种方法(在JobDetail
上指定工作参数)。
这个决定背后的主要原因是,理解和维护似乎更简单,更干净。
JobDetail
,并相应地填充JobDataMap
。Trigger
可能被多次触发,我们必须确保参数不会改变并保持所有作业执行的相同。JobDetail
并将其添加到调度程序。JobDetail
是我们的主要“作业定义”,包含运行作业所需的所有信息(自定义参数,参数等),我们将离开Trigger
对象来处理执行时间。只是我的两分钱。