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

发布于 2021-01-29 15:07:09

标题问了一切。我正在构建的网站上的内容根本不会很快改变,因此Memcache可能会存储几个月的数据,但当我进行更新时除外。有没有一种方法可以在每次部署站点时清除缓存?我正在使用Python运行时。

更新1

使用
jldupont
答案,将以下代码放入主请求处理脚本中…

更新2

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

关注者
0
被浏览
60
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您尝试过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-
    dynload’、’/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"]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看