0

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

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

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

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

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

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

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

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

4

3 回答 3

0

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

于 2013-04-04T16:29:59.627 回答
0

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

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

于 2013-04-04T17:17:28.810 回答
0

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

于 2013-04-04T17:19:28.577 回答