【问题标题】:Caching/job tracking framework [closed]缓存/作业跟踪框架
【发布时间】:2016-02-10 21:40:20
【问题描述】:

我正在尝试解决以下问题:

  • 我有一些昂贵的工作要做,然后我会缓存结果
  • 作品以字符串为键
  • 许多请求可能同时到达同一个键
  • 我希望避免每个键多次执行该工作
  • 我想为工作完成时调用的键添加回调;首次提交作品时,并非所有这些都是已知的。

这感觉像是一个应该已经解决的问题;有人知道涵盖它的 Java 框架或库吗?

【问题讨论】:

  • 前四个看起来很简单,无论在 C# 中与 Java 等价的 lock 是什么。第五可能与事件有关。 Quartz 可能会有所帮助,但我不确定如何。

标签: java caching jobs


【解决方案1】:

我可以想象一个围绕 guava 的 LoadingCache 的包装器,但我不知道有一个库可以开箱即用。

虽然LoadingCache#get 是同步的,但它确实可以让您获得 1-4 分,并且使用 refresh 可能会有一些里程数,它可以返回 ListenableFuture(尽管要获得您列出的所有功能,它可能会变得相当笨重包装器?)

供参考:

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/LoadingCache.html#refresh(K)

http://www.theotherian.com/2013/11/non-blocking-cache-with-guava-and-listenable-futures.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多