在一段时间之后或在Java中自动达到指定时间时删除记录

时间:2013-04-04 16:24:48

标签: java mysql websocket real-time

我正在开发一个Java Web应用程序。该方案描述如下:

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

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

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

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

+是否有可能像这样管理数据库?我想过数据库事件,但是当删除记录时,我不会被注意到。

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

你能给我一些想法吗?先谢谢你了!

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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