【问题标题】:How to schedule a job on server in Java web application如何在 Java Web 应用程序中的服务器上安排作业
【发布时间】:2016-01-17 19:02:38
【问题描述】:

我是 J2EE 的新手,我正在处理几项任务。其中之一是: 我有一个 Web 应用程序,其工作方式类似于由 Apache tomcat 7 托管的报告工具箱,我需要安排一个重量级的工作来安排每小时或其他时间间隔运行,我在 Google 上搜索并找到 Apache Sling 这是一种用于内容的单独应用程序服务器-中心应用。我想知道是否有其他解决方案可以做Apache tomcat? 同样重要的是,解决方案将是标准的和可靠的。

【问题讨论】:

  • 定时任务在做什么?
  • @Stefan 它在 oracle 数据库上运行多个查询并在该结果集上处理,每次处理可能运行超过 200K 行

标签: java tomcat web-applications scheduled-tasks sling


【解决方案1】:

ScheduledExecutorService 是标准 java api 的一部分。请参阅Executors 中的new*Schedule* 工厂方法。

对于更重量级/可配置的选项,Quartz。 Quartz 的一大特色是它支持cron expressions

【讨论】:

  • 感谢您的回复,Quartz 是否与 tomcat 集成?
  • 我不确定石英是否与ServletContextListener 捆绑在一起。如果没有,您需要创建一个并将其包含在您的web.xml
【解决方案2】:

您也可以使用 Spring Batch。这里有一个链接可以帮助您理解这个框架。

http://projects.spring.io/spring-batch/faq.html

【讨论】:

    【解决方案3】:

    如果没有一个包适合你,一个选择是实现一个 ServletContextListener。它是在您的网站上线时启动的对象。唯一的问题是您必须管理所有日程安排。

    【讨论】:

      猜你喜欢
      • 2010-11-11
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      相关资源
      最近更新 更多