我正在开发一个聊天室网络应用程序,将用户连接到有限大小的房间。我无法弄清楚如何保持数据清洁。我正在使用表单身份验证来跟踪用户。有了它,我就能知道用户何时离线。在我的User
表中,我有RoomID
来跟踪用户的位置。我需要每5分钟运行一次检查,找到离线的用户并将找到的任何设置设置为不明确的房间,这样他们就不会在离线时占用房间空间。将此代码包含在我的应用程序中似乎是不好的做法,因为这意味着它将每5分钟在每个用户的实例上执行。我只需要它全局执行。
据我所知,我的选择如下......
创建一个单独的应用程序,每隔5分钟检查一次数据库,并将所有离线用户设置为1号房间。这种方法的缺点是我需要一台计算机在线100%运行应用程序,始终监控用户状态。
在我的应用中加入支票。缺点包括:多个不必要的数据库ping,同时由于多个房间删除可能导致崩溃等。
还有其他方法吗?任何帮助表示赞赏。