【问题标题】:Notification scheduler and designer in java: implementation recommendationsjava中的通知调度器和设计器:实现建议
【发布时间】:2010-08-29 10:01:13
【问题描述】:

我正在为医生编写一个应用程序,该应用程序应该能够定义将显示在患者计算机中的通知。这些通知由医生安排,因此他/她可以选择何时显示。例如:“记得吃药”,每周显示一次,从 2010 年 1 月到 7 月。

所以它类似于 Google 日历的事件调度程序,但具有更丰富的时间条件。我想知道推荐的解决方案/工具是什么:

  • 客户端中的通知调度程序。客户端的应用程序是基于 java 的应用程序。它应该有一个后台事件调度程序来检查新的通知以及它们是否适用。
  • 服务器端的通知设计器/管理器。医生的应用程序应该能够显示一个可视化工具来定义时间条件(在 java 中也是如此)。通知存储在数据库中,以便通过 Web 服务进行远程访问。

是否有可用于此类问题的开源工具?另外,我一直在阅读有关 Drools 的文章,但这对我来说是一个全新的话题。对此有什么建议吗?

【问题讨论】:

    标签: java notifications scheduled-tasks


    【解决方案1】:

    有各种可用的开源调度程序。

    Quartz 就是其中之一,可以很好地控制调度任务。

    【讨论】:

      【解决方案2】:

      听起来您有 3 个独立但相关的问题:

      1. 安排一项或多项未来活动。
      2. 时间表和相关上下文数据的持久性。
      3. 一种推送模型,用于 [重新] 将调度事件从服务器传送到客户端。

      差不多吧?

      对于调度和持久性,我建议您查看Quartz。它将为您提供一个干净的 API 用于调度(一次或重复),具有一定的灵活性,包括固定周期或 cron。它还将计划数据和上下文(称为Job)持久保存到 JDBC 数据库。

      至于#3,我不清楚你希望它如何工作,但它可能工作的一种可能方式是,当客户端连接到服务器时,它会非持久地缓存服务器提供的适用于该服务器的预定事件客户(或用户等)。当客户端关闭时,这些事件将被丢弃,但会在下一次连接时更新。一旦事件加载到客户端,客户端将负责使用自己的本地调度程序(Quartz 甚至更简化的ScheduledThreadPoolExcutor)触发它们。

      Drools 是一个出色的规则引擎,但对于您正在尝试做的事情可能有点过头了。

      //尼古拉斯

      【讨论】:

        猜你喜欢
        • 2012-01-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-08
        • 1970-01-01
        • 1970-01-01
        • 2012-07-04
        • 2011-06-21
        相关资源
        最近更新 更多