关于clojure web高并发问题

并发
clojure
标签: #<Tag:0x00007f001602a248> #<Tag:0x00007f001602a108>

#1

请教大家一个问题:web 开发,clojure处理并发的时候,不管是ref还是atom,因为每次请求的都不一样,因此ref或atom声明的变量得是全局的,那就存在一个问题,如何维护他的过期时间?比如在什么时候清除变量?

举一个简单的例子,比如新闻文章,大家点赞加1,一开始10个人看到的都是0,这个时候10个人同时都去点赞,那我就需要申明一个全局的atom, 来维护每篇文章当前的点赞数,然后用事务内存来进行更新。可是文章有很多,如果这么多数据一直放在 jvm 内存的话,时间久了就占用很大的内存了,很浪费,现在是自己写了个程序,超过1分钟没有人使用的数据,就进行清除。大家在处理高并发业务的时候有什么好办法吗?