我知道 Johnny 缓存MAN_IN_BLACKLIST
和JOHNNY_TABLE_BLACKLIST
. 有没有办法指定相反的?那就是只指定需要缓存的表?我想这样做的原因很简单,因为我们在应用程序中有超过 200 个表,我想缓存一些并且不希望我MAN_IN_BLACKLIST
的表非常大。
谢谢,
我知道 Johnny 缓存MAN_IN_BLACKLIST
和JOHNNY_TABLE_BLACKLIST
. 有没有办法指定相反的?那就是只指定需要缓存的表?我想这样做的原因很简单,因为我们在应用程序中有超过 200 个表,我想缓存一些并且不希望我MAN_IN_BLACKLIST
的表非常大。
谢谢,
恐怕你需要破解johnny/cache.py
,而不是明确地写表,主要是行包含blacklist_match
。最简单的方法是直接修改函数blacklist_match
:
# set WHITELIST in johnny/settings.py, just as BLACKLIST
WHITELIST = getattr(settings, 'MAN_IN_WHITELIST',
getattr(settings, 'JOHNNY_TABLE_WHITELIST', []))
WHITELIST = set(WHITELIST)
def blacklist_match(*tables):
return not WHITELIST.issuperset(tables) or \
bool(settings.BLACKLIST.intersection(tables))
从 1.4 版开始,Johnny Cache 实际上支持白名单。添加JOHNNY_TABLE_WHITELIST
到您的设置并为其分配要缓存的表列表,例如:
JOHNNY_TABLE_WHITELIST = ['appname_tablename', 'someotherapp_differenttable']