石英调度器如何工作?

Abh*_*ain 10 java quartz-scheduler threadpool

我的问题是:石英调度程序如何工作,它与实现Runnable接口(基本上是一个线程)的普通类有什么不同,它根据指定的时间间隔唤醒并执行所需的工作?

它只是一种方便的处理方式(使用石英调度程序),比如通过XML文件指定作业配置,以及向现有调度程序轻松添加新作业,还是有更多内容?更多,我的意思是它是否进行任何类型的优化,例如它不会在整个持续时间内挂起并释放它?它是一种轮询类型的机制,线程保持轮询系统时间并查看指定的时间间隔是否已经过,或者它是否使用系统时钟进行某种注册,时钟本身通知石英调度程序?

如果上述问题需要进一步澄清,请与我们联系.

Abh*_*ain 19

在发布问题后,我浏览了网络上的一些内容,并找到了一些有用的见解.很抱歉发布问题并自己回答,但对于其他可能想要了解相同问题的人来说,这会很有用.

以下是Quartz的优点及其与通常的Java计时器界面的比较:

  • Quartz非常灵活,包含多个使用范例,可以单独使用或一起使用,以实现您想要的行为,并使您能够以对项目最"自然"的方式编写代码.
  • 石英非常轻,并且只需要很少的设置/配置 - 如果您的需求相对基本,它实际上可以"开箱即用".
  • Quartz具有容错能力,可以在系统重启之间持续("记住")您的预定作业.

另一方面,它克服了Timer接口中的以下问题:

  • 定时器没有持久性机制.
  • 定时器具有不灵活的调度(仅能够设置开始时间和重复间隔,没有基于日期,时间等的任何内容)
  • 定时器不使用线程池(每个定时器一个线程)
  • 计时器没有真正的管理方案 - 您必须编写自己的机制,以便能够按名称记住,组织和检索您的任务等.

如果有人想在上面添加任何信息,请随时这样做.

  • `它是一种轮询类型的机制,线程保持轮询系统时间并查看指定的时间间隔是否已经过去,或者它是否使用系统时钟进行某种注册,时钟本身通知石英调度程序?` - 怎么样那部分?我在找那个. (10认同)
  • @AbishekJain`在发布问题之后,我浏览了网络上的一些内容,并找到了相同的一些有用的见解.错误的订购......下次按正确的顺序进行.然而,+1发布信息 (5认同)
  • 这不是关于它如何工作,而是更多关于它的功能。没有关于其内部工作原理的真实信息。 (2认同)