繁体   English   中英

如何在Java Spring中的不同请求中使用SET的相同实例

[英]How to use the same instance of a SET across different requests in Java Spring

我正在尝试实现一种功能,使连接到我的应用程序的ID或用户列表排队,并每分钟将其转储到数据库中。

为了实现这一点,我打算将所述用户的ID存储在一个集中,然后将其存储在数据库中,并每分钟清空一次。

但是我的挑战包括

  • 如何在来自各种用户的各种请求中使用集合的相同实例,以便获得各种用户的列表。

我无法使用会话,因为如上所述,该集合将是在不同会话中使用的不同用户的ID。

您可以在@Service使用类级别的变量,因为它的默认范围是单例或静态变量。 但是您必须正确维护Set的内容,因为它可能导致内存泄漏。

简而言之,您可以使用线程安全集实现来解决您的问题,但我个人将尝试使用“发布-订阅”模式,其中发布者发布一个事件(在您的情况下为id),而订阅者可以(同步或异步) )将事件缩减为一组,然后将其刷新到数据库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM