Quartz 中的 Job 和 JobDetail 有什么区别?
Whats the difference between the Job and JobDetail exactly in Quartz?
为什么 Quartz 想出了像 JobDetail
这样的单独的 class?当他们可以
仅容纳 Job
class 中的所有属性
是否是作者的实现缺陷?
首先两者都是接口
Job
的实现,即。它唯一的方法 void execute(JobExecutionContext)
是 quartz 调度程序为了执行所需任务而调用的方法
The interface to be implemented by classes which represent a 'job' to be performed.
JobDetails
是与 Job
实现相关的元数据,它们包含对您想要 运行 的 Job
的引用,并允许您提供一些额外的数据给你的 Job
Conveys the detail properties of a given Job instance. JobDetails are to be created/defined with JobBuilder.
Quartz does not store an actual instance of a Job class, but instead allows you to define an instance of one, through the use of a JobDetail.
Jobs have a name and group associated with them, which should uniquely identify them within a single Scheduler.
这里做出的这个设计决定似乎是合理的,因为它遵循 关注点分离 方法。
要执行的 Job
通过其 JobExecutionContext
获取所有输入数据,并且不需要关心任何其他与 quartz 相关的属性,例如作业的名称或组。
然而,quartz 调度器需要一些额外的信息才能运行 你的Job
。因此,需要 JobDetail
实现来保存此信息。
为什么 Quartz 想出了像 JobDetail
这样的单独的 class?当他们可以
仅容纳 Job
class 中的所有属性
是否是作者的实现缺陷?
首先两者都是接口
Job
的实现,即。它唯一的方法 void execute(JobExecutionContext)
是 quartz 调度程序为了执行所需任务而调用的方法
The interface to be implemented by classes which represent a 'job' to be performed.
JobDetails
是与 Job
实现相关的元数据,它们包含对您想要 运行 的 Job
的引用,并允许您提供一些额外的数据给你的 Job
Conveys the detail properties of a given Job instance. JobDetails are to be created/defined with JobBuilder.
Quartz does not store an actual instance of a Job class, but instead allows you to define an instance of one, through the use of a JobDetail.
Jobs have a name and group associated with them, which should uniquely identify them within a single Scheduler.
这里做出的这个设计决定似乎是合理的,因为它遵循 关注点分离 方法。
要执行的 Job
通过其 JobExecutionContext
获取所有输入数据,并且不需要关心任何其他与 quartz 相关的属性,例如作业的名称或组。
然而,quartz 调度器需要一些额外的信息才能运行 你的Job
。因此,需要 JobDetail
实现来保存此信息。