我正在尝试实现一种功能,可以将已连接到我的应用程序的ID或用户列表排队,并每分钟将其转储到数据库中。
为了实现这一目标,我打算将所述用户的ID存储在一个集合中,然后将其存储在数据库中,并每分钟清空该集合。
但是我的挑战包括
我无法使用会话,因为如上所述,该集合将是在不同会话中使用的不同用户的ID。
答案 0 :(得分:1)
您可以在@Service
中使用类级别的变量,因为它的默认范围是单例或静态变量。但是您必须正确维护Set
的内容,因为它可能导致内存泄漏。
答案 1 :(得分:0)
简而言之,您可以对问题使用线程安全集实现,但是我个人将尝试使用“发布-订阅”模式,其中发布者发布事件(在您的情况下为ID),而订阅者可以(同步或异步)将事件缩减为一组,然后将其刷新到数据库中。