我是网络应用程序设计的新手,如果您能分享以下问题的经验和知识,我将不胜感激。
用例/背景: 我正在构建一个跟踪客户互动的网络应用程序。当客户开始与我的webapp交互时,我必须进行API调用,说交互是ACTIVE。当该客户停止交互时,我将客户状态设置为IDLE,时间限制为30分钟。在30分钟不活动之后,我必须再次进行API调用,说明交互已结束。
我目前的做法: 我将IDLE客户的用户ID保存到数据库(redis)。我还有一个预定的事件,每隔一分钟就会查询我的IDLE id数据库。当我找到过期的ID(通过30分钟)时,我会删除这些ID并进行最终的API调用(ENDED)。
问题: 考虑到可扩展性和可靠性,有没有更好的方法来实现这一点?理想情况下,我想要一个通知系统,我可以在其中进行API调用以注册具有客户ID,时间限制和回调URL的通知。当时间限制到期时,应该通知回叫URL端点。是否有像这样的行业接受的解决方案?如果是的话,它真的比我目前的做法更好吗?你会如何实现这个系统?
任何反馈和设计提示将不胜感激。
感谢您的时间。