首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为Spring设计一个“可更新的”静态集?

为Spring设计一个“可更新的”静态集?
EN

Stack Overflow用户
提问于 2017-04-04 07:31:04
回答 1查看 36关注 0票数 1

我需要创建一个不变的集大约10,000个条目,将“更新”(重新创建)一周一次。我一直在阅读执行程序框架来进行更新,但是我不知道如何在使用Spring的同时实现端到端的功能。描述性更强:

  1. 在我的服务器上的一个文件中存储着10,000个ID号的列表。该文件每3-4周更新一次,并不断增长(但可能永远不会超过20000项)。
  2. 服务中需要此列表的方法每天被调用数千次,因此我希望将列表存储在内存中一次,而不是每次调用该方法时都获取它。
  3. 我希望通过读取服务器上的文件并重新创建集合,每周更新一次存储在内存中的列表。

在“无弹性”Java中,我似乎可以创建一个具有静态集的类和一个每7天更新一次的单线程ScheduledExecutor。当启动服务时,具有Set/update线程的类被实例化一次,而我的" Service“类则在需要时只获取该集合。(不确定这是否是一个好的实现)

在使用Spring时获得此功能的最佳方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-04 07:51:36

我建议使用一些内存中的数据存储,如Redis春季数据红宝石,用于存储条目并具有非常快的读写场景。

尽管如此,对于您当前设计的Spring方法来说:

  1. 对作业使用@EnableScheduling@Scheduled注释。指南可以找到这里
  2. @Service注释标记您的服务,以便Spring在组件扫描期间为它生成一个bean (确保包是可见的)
  3. 为您的Set创建一个非静态设置器,并让您的计划作业调用它来更新集合。因为您的服务是Singleton (缺省Spring设置),所以您不必担心服务的所有实例中的静态集都会被更改。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43200914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档