python - 每次部署站点时,如何让 Google App Engine 清除内存缓存?

标签 python google-app-engine deployment caching memcached

标题说明了一切。我正在构建的网站上的内容根本不会很快改变,因此 Memcache 可能会存储数月的数据,除非我发布更新。有没有办法在我每次部署站点时清除缓存?我正在使用 Python 运行时。

更新 1

使用 jldupontanswer我将以下代码放在我的主请求处理脚本中...

更新 2

我已切换到Koen Bok 中提到的方法。在所选答案的评论中,并在我所有的内存缓存键前面加上 os.environ['CURRENT_VERSION_ID']/answer 中的有用代码的第二次更新。这个解决方案似乎比我之前发布的功能要优雅得多。

最佳答案

你试过flush_all()函数吗? Docs here .您需要一些逻辑和状态来检测新部署或使用特殊脚本来执行刷新。

更新:查看其中一个脚本的绝对路径:每次部署都会更改。您可以使用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-dynload', '/base/python_lib/versions/1', '/base/data/home/apps/shell/1.335852500710379686/']

查看与/shell/1.335852500710379686/的行。

因此,只需保留此部署状态变量的快照(在内存缓存中;-)并进行比较以执行刷新操作。

更新 2:正如@Koen Bok 所建议的,环境变量 CURRENT_VERSION_ID 也可以使用(也是脚本文件的绝对路径的一部分)。

 import os
 os.environ["CURRENT_VERSION_ID"]

关于python - 每次部署站点时,如何让 Google App Engine 清除内存缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1983556/

相关文章:

deployment - 无需安装即可部署ODP.NET

python - 使用 boost::python,如何将结构 vector 作为字典列表返回给 Python?

python - 将字符串转换回列表

google-app-engine - appengine 上的 Jinja2 版本 2.8

java - 为什么我的应用程序引擎 ID 生成器策略会生成大量数字?

python - 我可以完全用 Python 签署 X509 证书吗?

java - 在 Mac OS X 扩展坞中锚定 Java 应用程序?

python - 整数为 0 的 ref 计数器的奇怪行为

python - 将列表项与上一项连接

机器上的 MongoDB 或 MongoDB Atlas