1

我知道 Johnny 缓存MAN_IN_BLACKLISTJOHNNY_TABLE_BLACKLIST. 有没有办法指定相反的?那就是只指定需要缓存的表?我想这样做的原因很简单,因为我们在应用程序中有超过 200 个表,我想缓存一些并且不希望我MAN_IN_BLACKLIST的表非常大。

谢谢,

4

2 回答 2

1

恐怕你需要破解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))
于 2012-05-11T09:01:45.860 回答
0

从 1.4 版开始,Johnny Cache 实际上支持白名单。添加JOHNNY_TABLE_WHITELIST到您的设置并为其分配要缓存的表列表,例如:

JOHNNY_TABLE_WHITELIST = ['appname_tablename', 'someotherapp_differenttable']

来源

于 2013-08-14T07:45:46.217 回答