集成了dogpile.cache用于Pyramid
项目描述
pyramid_dogpile_cache2
小型dogpile.cache配置和访问包。它受到pyramid_dogpile_cache的启发,我们发现它不可用,因为它坚持在其get_region() API中配置缓存区域 – 但如果您想使用@cache_on_arguments装饰器,那么它是在import time中,那时还没有配置。我们的包希望在WSGI应用程序设置期间进行配置。
此包与Python版本 >=3.6 兼容。
用法
该包只提供了一个API函数;它返回一个dogpile.cache CacheRegion
from pyramid_dogpile_cache import get_region region = get_region('foo')
如上所述,在导入时间调用它是安全的,因此您可以继续这样做
@region.cache_on_arguments() def expensive_function(one, two, three): # compute stuff
设置 / Pyramid
在代码中包含包
config = Configurator(...) config.include('pyramid_dogpile_cache2')
或ini文件中
pyramid.includes = pyramid_dogpile_cache2
设置 / Paste
对于使用paste.ini文件的非Pyramid WSGI应用,您需要调用
def my_paste_app_factory(global_conf, **local_conf): pyramid_dogpile_cache2.configure_dogpile_cache(local_conf) return my_wsgi_callable
设置
遗憾的是,pyramid_dogpile_cache对设置的支撑相当不完整(例如,它甚至无法将expiration_time转换为int)。此包的支持稍微好一些,但仍然非常不完整:我们支持内存和memcached后端(具体为pylibmc),并且所有缓存区域都使用相同的后端和配置。
以下设置受支持
dogpile_cache.regions
应配置的区域名称列表(由空格或逗号分隔)。
dogpile_cache.backend
缓存区域的默认后端(例如'dogpile.cache.memory',dogpile.cache.pylibmc等)。
dogpile_cache.REGION.backend
给定区域的后端。
dogpile_cache.expiration_time
默认过期时间。对于单个区域可以覆盖(以秒为单位)。省略则不设置过期时间。
dogpile_cache.REGION.expiration_time
给定缓存区域的过期时间(以秒为单位)。如果省略,则使用全局的expiration_time设置。
dogpile_cache.arguments.*
后端参数的默认值。对于单个区域可以覆盖。
dogpile_cache.REGION.arguments.*
给定缓存区域的后端参数。
后端参数仅对字符串有效,因此我们支持一些自定义处理
dogpile_cache.pylibmc_url
由分号分隔的memcached服务器列表。
dogpile_cache.pylibmc_behavior.*
设置pylibmc行为,参见coerce_memached_behaviors以了解哪些子键受支持。
注意:与pyramid_dogpile_cache不同,我们目前不支持覆盖key_generator或key_mangler函数;我们使用增强版的dogpile.cache预配置它们,支持非ascii函数参数,并为包含类名的方法生成缓存键。
开发pyramid_dogpile_cache2
pyramid_dogpile_cache2的变更日志
1.1.2 (2022-07-15)
在配置期间清除内部_actual_backend,以提高测试隔离性
1.1.1 (2020-09-11)
忽略空的pylibmc_url设置
1.1.0 (2020-07-28)
移除Python-2兼容性,更新到dogpile.cache>=1.0
1.0.6 (2019-11-08)
允许配置完全不设置过期时间
1.0.5 (2018-12-14)
明确Python-3兼容性(它是>=3.4,而不仅仅是3.4)
1.0.4 (2018-11-21)
支持Python 3上带有类型注解的缓存函数(见PR #5)。
1.0.3 (2017-02-14)
修复打包问题(见PR #2)。
1.0.2 (2016-08-01)
将API兼容性更新到dogpile.cache-0.6.0。
1.0.1 (2016-01-20)
实际上将类名包含在方法的缓存键中。
1.0.0 (2016-01-19)
初始发布。