一些Python的snippets
log 以天为单位分文件保存
以前我用的比较多的是 RotatingFileHandler,这个根据文件大小进行分割。有的时候我们对文件大小限制并不大,而对日期更敏感一点。这个时候可以用官方库里面的 TimedRotatingFileHandler。
1 | from logging.handlers import TimedRotatingFileHandler |
缓存函数结果一段时间
Python 库里面有一个 @functools.lru_cache(maxsize=128, typed=False) 修饰器,可以缓存最近的maxsize个结果。但是有的时候需要修饰的函数并不是一个纯函数,譬如其可能请求一个列表;但是我们对它的结果的即时性要求不高,这个时候可以考虑使用一个缓存将其结果缓存一段时间,以减少调用该函数的时间。
使用 cachetools 包,该包里面实现了该功能。需要注意的是对于异步函数需要使用 asyncache 进行修饰。
1 | from cachetools import func as functools |