我有一个网络服务器正在运行compojure
。Web 服务器从另一个服务器提供的 XML 文件中读取数据。我不想用请求轰炸文件的提供者,而且 XML 文件不会经常更改,所以我想我需要某种缓存。
我可以在本地存储 XML 文件并每X分钟刷新一次。另一种方法是在相同的时间间隔内重新解析原始文件并将文件存储在内存中?也许我可以使用refs
或atoms
为此?这个过程可能应该在不同的线程中运行。我将如何配置它?
将来我可能会拥有大量需要更新的 XML 文件。
哪种方法是最好的方法?
我有一个网络服务器正在运行compojure
。Web 服务器从另一个服务器提供的 XML 文件中读取数据。我不想用请求轰炸文件的提供者,而且 XML 文件不会经常更改,所以我想我需要某种缓存。
我可以在本地存储 XML 文件并每X分钟刷新一次。另一种方法是在相同的时间间隔内重新解析原始文件并将文件存储在内存中?也许我可以使用refs
或atoms
为此?这个过程可能应该在不同的线程中运行。我将如何配置它?
将来我可能会拥有大量需要更新的 XML 文件。
哪种方法是最好的方法?
我认为你可以从core.memoize
图书馆开始:
https://github.com/clojure/core.memoize
稍后,您总是可以转移到更复杂且与 JVM 内存分离的东西 - 例如 Redis 或 memcached。