Java Web应用程序中的Quartz与ScheduledExecutorService

mjn*_*mjn 16 java web-applications quartz-scheduler

对于监视当前在命令行上运行并使用的Java应用程序的系统ScheduledExecutorService,我想编写一个简单的Web应用程序版本,在Apache TomcatEclipse JettyServlet容器中运行.

我已经读过Quartz作为Web应用程序的流行作业调度程序之一.将此应用程序移植ScheduledExecutorService到Quartz 会更好(可能是因为更好的servlet容器集成)?

向应用程序添加另一个库依赖项不是问题,我对反对使用的技术原因感兴趣ScheduledExecutorService.

Pet*_*rey 11

这取决于你使用它的是什么.

石英对于编程时间非常有用,例如每小时一小时.

ScheduledExecutorService对于重复不必在特定时间发生的任务非常有用.它更简单,可能更有效.如果你有这个工作,它告诉我你不需要Quartz.

  • 我认为java有API来执行Quartz所做的事情.我仍然不了解Quartz框架的必要性. (4认同)
  • Quartz允许您说您希望在一小时内运行任务.例如,12:00,13:00等.内置API允许您每小时运行一次(从某个时刻开始),但随着时间的推移,这会漂移.(每天多达10秒) (3认同)
  • @Newbie 不。您可能会在 Java 中使用现代 Java API,例如 Executors 和 *java.time* 来实现像 *Quartz* 这样的工具,但这对您来说需要做很多工作。Quartz [功能丰富](http://www.quartz-scheduler.org/overview/features.html) 具有许多超出 Executor 的附加功能:各种时间段、触发器和侦听器、将作业持久化到数据库或其他存储、事务、故障转移和负载平衡等。 (2认同)

che*_*vim 9

ScheduledExecutorService在较低级别运行,您必须自己实施所有调度监视/维护工具.

Quartz拥有大量的工具,如工作持久性,交易,聚类等.