【问题标题】:Suggestion to Design Report Scheduler Service设计报表调度服务的建议
【发布时间】:2013-04-14 02:33:10
【问题描述】:

我正在用 Java 设计一个报告计划程序服务。任务是在数据库中查找并查找是否有任何报告应在此特定时间执行。 如果是,我们需要触发报告生成任务。 报告可以安排在特定时间(例如:星期一 @ 18:00 EDT)或每日(每周日 @ 09:00 EDT)或每月(每月最后一天 @ 21:00 EDT)。

我们目前使用的技术栈: - Java 6 - 春天 3.1.3 - 弹簧集成 2.2 - 休眠 4

目前的设计计划: - 创建计时器事件,每 5 秒在数据库中使用时间戳填充一条消息 - 将所有时间表转换为 UTC 时区后将其加载到内存中 - Spring 通道读取此消息,该消息每 5 秒到达一次,并调用服务以查找是否有任何计划要执行 - 如果报告到期调用触发报告的服务

需要有关工具或设计建议的帮助,如果它们是更好的实现方式吗?

【问题讨论】:

    标签: java spring hibernate spring-integration


    【解决方案1】:

    一种选择是几乎完全在 Spring Integration 中执行。

    使用 JPA 入站通道适配器,可以将轮询器配置为定期轮询数据库并创建消息,从而允许您转换和启动您的工作。所有这些都可以在 Spring Integration 中完成。

    <int-jpa:inbound-channel-adapter
        channel="trigger.channel"
        entity-manager="entityManagerFactory"
        jpa-query="select t from ReportTrigger where ...">
        <int:poller cron="30 * 9-17 * * MON-FRI"/>
    </int-jpa:inbound-channel-adapter>
    
    <int:channel id="trigger.channel"/>
    

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 2011-10-09
      • 2014-05-24
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-09
      相关资源
      最近更新 更多