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

在Java中,在一段时间后或当指定的时间自动到达时删除记录,java,mysql,websocket,real-time,Java,Mysql,Websocket,Real Time,我正在开发一个Java web应用程序。该场景描述如下: 许多用户提交他们的状态,他们也可以看到其他人的状态。它看起来像一种社交网络 他们的状态有一段时间可以显示,在这段时间之后,他们在数据库中的状态将被删除 在删除其状态时,向所有用户发送通知以请求更新(已删除的状态必须实时消失!) 我已经尝试通过JavaWeb应用程序中的一个线程自动完成这项工作。但是,我遇到了一些问题: +可以这样管理数据库吗?我考虑过数据库事件,但当记录被删除时,我不会被注意到 +我正在使用web套接字使应用程序实时工

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

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

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

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

我已经尝试通过JavaWeb应用程序中的一个线程自动完成这项工作。但是,我遇到了一些问题:

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

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


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

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

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


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