如何使用无限超时配置Flask-Cache

13
在Flask-Cache文档中,所有的示例都使用有限的超时时间。
我希望在应用程序运行时永远不要刷新缓存。这可能吗?如果可能,我该如何做?

1
你不能只是将它设置为一个非常大的数字吗?如果你想要它永久缓存,也许你应该将它保存到文件中并提供服务? - Cathy
两种解决方案都可以,但我只是好奇是否支持无限缓存。 - iwein
2个回答

23

Flask-Cache 在后台使用 werkzeug.contrib.cache 。从文档中可以明确得知:

超时时间为 0 表示缓存永不过期。

因此,是支持无限缓存的,并且可以通过将超时时间设置为零来开启。


这是一个例子:cache.set(event, value, timeout=0) - Bob Jordan
文档链接已损坏,这里是Flask-Caching的链接(不是Flask-Cache!):https://flask-caching.readthedocs.io/en/latest/ - aboger
无限超时意味着缓存文件永远不会被删除吗? - wordsforthewise

8

文档中似乎没有列出任何内容。我使用了以下内容,它可以正常工作。

     cache = Cache(webapp, config={
         'CACHE_TYPE': 'filesystem',
         'CACHE_DIR': 'cache-dir', 
         'CACHE_DEFAULT_TIMEOUT': 922337203685477580,
         'CACHE_THRESHOLD': 922337203685477580
     })

这比你需要担心的时间长得多,因此在所有实际目的上,让我们将其视为无限。


1
CACHE_THRESHOLD 而言,您可以将其设置为例如 math.inf,这样会更加简洁。 - nirvana-msu
2
大而未定义的数字会导致代码可读性差。如果我是另一个开发者,在几年后查看这段代码时,我将不知道那些数字的含义或如何生成它们。使用更符号化的东西,例如 0math.inf 比这更好。 - Hartley Brody

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接