标题要求一切.我正在建立的网站上的内容根本不会很快改变,所以Memcache可能存储数据数月,除非我提出更新.有没有办法在每次部署网站时清除缓存?我正在使用Python运行时.
使用jldupont的答案我将以下代码放在我的主要请求处理脚本中......
我已经切换到Koen Bok在所选答案的注释中提到的方法,并os.environ['CURRENT_VERSION_ID']/
在答案的第二次更新中将所有我的memcache键和有用的代码作为前缀.这个解决方案似乎比我之前发布的功能更优雅.
你试过flush_all()
功能吗?文档在这里.您需要一些逻辑和状态来检测新部署或使用特殊脚本来执行刷新.
更新:查看您的某个脚本的绝对路径:每次部署时都会更改.您可以使用http://shell.appspot.com/进行实验:
import sys sys.path
['/ base/python_dist/lib/python25.zip','/ base/python_lib /versions/third_party/django-0.96','/ base/python_dist/lib/python2.5 /','/ base/python_dist/lib /python2.5/plat-linux2','/ base/python_dist/lib/python2.5/lib -tk','/ base/python_dist/lib/python2.5/lib-dadload','/ base/python_lib /版本/ 1','/ base/data/home/apps/shell/1.335852500710379686 /']
使用/shell/1.335852500710379686/查看该行.
因此,只需保留此部署状态变量的快照(在memcache ;-)中进行比较,以便进行刷新操作.
更新2:正如@Koen Bok所建议的那样,环境变量CURRENT_VERSION_ID也可以使用(也是脚本文件的绝对路径的一部分).
import os os.environ["CURRENT_VERSION_ID"]