为什么石英会有单独的类,如 JobDetail
当他们可以容纳所有的财产在。Job
唯独
这是作者的实施缺陷吗?
首先两者都是接口。
一个实现 Job
即其唯一方法 void execute(JobExecutionContext)
是石英调度器为了执行所需的任务而调用的。
由代表要执行的 "工作 "的类实现的接口。
JobDetails
是与一个 Job
实现,它们持有对 Job
允許您提供一些額外的資料給您的 Job
传递给定Job实例的细节属性。JobDetails是用JobBuilder创建定义的。
Quartz不存储一个实际的Job类实例,而是允许您通过使用JobDetail来定义一个实例。
Job有一个与之相关的名称和组,它应该在一个单一的Scheduler中唯一地识别它们。
的 Job
要执行的任务通过它的 JobExecutionContext
而不需要关心任何其他与石英相关的属性,如工作的名称或组。
然而,石英调度器需要一些额外的信息,以运行你的工作。Job
因此,a JobDetail
需要实施持有这些信息。