【问题标题】:Time-expiring cache in kleptoklepto 中的过期缓存
【发布时间】:2023-03-26 13:29:01
【问题描述】:

我正在尝试使用 klepto (v. 0.1.5.2) 来缓存一些非常繁重且耗时的计算。特别是,我使用lru_cache 作为装饰器,再加上hdfdir_archive 缓存存档。

按照in this answer 的建议,我设法使用lru_cache 中的purge=False 选项将缓存内容保留在磁盘上,并且它的工作原理非常棒。无论如何,我会不时重新计算函数(即使使用相同的输入参数),因为某些计算是基于可能在一段时间后发生变化的数据。

作为一种简单的解决方法,我认为当前日期可以包含在函数的输入参数中,实现一个自定义的keymap 来检查旧条目是否已过期;但我还没有找到如何自定义键盘映射的示例,所以我不知道这个解决方案是否可行或可行。

但是,我想知道klepto 中是否已经提供了更优雅或更简单的解决方案。换句话说,是否有一个选项或策略可以在预设的时间段后自动使缓存条目失效?

谢谢!

【问题讨论】:

    标签: python caching klepto


    【解决方案1】:

    我是klepto 的作者。 klepto 中没有缓存有过期条目,但是它在 TODO 列表中。

    【讨论】:

    • 感谢您的快速回复!我非常感谢klepto:这是一个非常有趣的工具。您认为现在自定义键盘映射可能是一种可能的解决方案吗?您能否指出一些资源或文档来学习如何自定义和使用键盘映射?
    • 是...您可以自定义keymaps...但您实际上要做的是创建一个带有过期缓存的自定义存档...这将由构建自定义cache。见https://github.com/uqfoundation/klepto/blob/master/klepto/_cache.py
    • 谢谢!我会试试的。
    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 2020-08-20
    • 2012-02-09
    • 2012-09-20
    • 1970-01-01
    相关资源
    最近更新 更多