【问题标题】:Deleting a record after a period of time or when the specified time reaches automatically in Java在一段时间后或在Java中自动到达指定时间时删除记录
【发布时间】:2013-04-04 16:24:47
【问题描述】:

我正在开发一个 Java Web 应用程序。场景描述如下:

  • 许多用户提交他们的状态,他们也可以看到其他人的状态。它看起来像是一种社交网络。

  • 他们的状态有一段时间显示,过了这段时间,他们在数据库中的状态将被删除。

  • 在他们的状态被删除时,向所有用户发送通知以请求更新(已删除的状态必须实时消失!)

我尝试通过 Java Web 应用程序中的线程自动执行此操作。但是,我遇到了一些问题:

+可以这样管理数据库吗?我想到了数据库事件,但是当一条记录被删除时,我不会被注意到。

+我正在使用 web socket 来使应用程序实时工作。如果有人更新或更改了新状态,则可以使用 Web 套接字向所有用户发送更新通知。但是当更改来自数据库时,我不知道如何发送这样的通知。

你能给我一些想法吗?提前谢谢你!

【问题讨论】:

    标签: java mysql websocket real-time


    【解决方案1】:

    您可以使用DelayQueue来存储每个要在指定延迟时间删除的项目,当您删除项目时,删除数据库中的记录并向浏览器发送通知。

    【讨论】:

      【解决方案2】:

      以下是如何在 Java EE 6 应用程序中使用计时器服务的教程:

      http://docs.oracle.com/javaee/6/tutorial/doc/bnboy.html

      【讨论】:

        【解决方案3】:

        如果即使您的程序崩溃也需要删除状态,那么我建议您使用quartz - 这样如果您的程序崩溃,那么石英会在您重新加载程序时更新数据库。如果您的程序不需要如此健壮,请改用 DelayQueue。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-18
          • 2019-04-24
          • 2017-07-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多