Johnny cacheMAN_IN_BLACKLIST
とJOHNNY_TABLE_BLACKLIST
. 逆を指定する方法はありますか?つまり、キャッシュする必要があるテーブルのみを指定しますか? アプリケーションに200を超えるテーブルがあり、いくつかをキャッシュしたいので、テーブルを非常に大きくしたくないという単純な理由でこれを行いたいと思いますMAN_IN_BLACKLIST
。
ありがとう、
Johnny cacheMAN_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']