在Quartz中,Job和JobDetail到底有什么区别?[已关闭]

问题描述 投票:-1回答:1

为什么石英会有单独的类,如 JobDetail当他们可以容纳所有的财产在。Job 唯独

这是作者的实施缺陷吗?

java quartz-scheduler jobs job-scheduling quartz
1个回答
1
投票

首先两者都是接口。

一个实现 Job 即其唯一方法 void execute(JobExecutionContext) 是石英调度器为了执行所需的任务而调用的。

由代表要执行的 "工作 "的类实现的接口。


JobDetails 是与一个 Job 实现,它们持有对 Job 允許您提供一些額外的資料給您的 Job

传递给定Job实例的细节属性。JobDetails是用JobBuilder创建定义的。

Quartz不存储一个实际的Job类实例,而是允许您通过使用JobDetail来定义一个实例。

Job有一个与之相关的名称和组,它应该在一个单一的Scheduler中唯一地识别它们。


这个设计决定在这里似乎是合理的,因为它遵循的是 分头行动 办法。

Job 要执行的任务通过它的 JobExecutionContext 而不需要关心任何其他与石英相关的属性,如工作的名称或组。

然而,石英调度器需要一些额外的信息,以运行你的工作。Job因此,a JobDetail 需要实施持有这些信息。

© www.soinside.com 2019 - 2024. All rights reserved.