首页 文章

Java Web应用程序中的Quartz与ScheduledExecutorService

提问于
浏览
13

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

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

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

3 回答

  • 2

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

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

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

  • 9

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

    Quartz有tons of facilities,例如Job Persistence,Transactions,Clustering等 .

  • 8

    Java的Executor解决方案允许您:

    • 立即运行任务

    • 在初始延迟后启动任务(并且可选地在后续延迟周期后重新运行任务) .

    但是,Quartz在运行任务/工作的时间和频率方面赋予您极大的灵活性 . 例如,周一至周五工作周期间的一个时间表以及周末期间的其他时间表(或根本没有) . 或者在这个月的最后一天,你最后一天是在28日,29日,30日或31日 . 以下是cron样式调度所适应的灵活性的更多示例 - http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html#examples

    使用Java 's library is easier but for anyone that wants a jump start into a bare-bones codebase example of Quartz working, I' ve将此模板放在一起免费下载使用 - https://github.com/javateer/quartz-example

相关问题