gpt4 book ai didi

python - 在 App Engine 应用程序中放置缓存驱逐逻辑的最佳位置在哪里?

转载 作者:行者123 更新时间:2023-12-03 17:36:58 27 4
gpt4 key购买 nike

我已经为 Google AppEngine 编写了一个应用程序,我想利用 memcache API 来减少每个请求的 CPU 时间。我分析了应用程序,发现大部分 CPU 时间用于模板渲染和对数据存储的 API 调用,在与同事聊天后,我跳出(可能有点早?)得出的结论是缓存一个页面呈现的 HTML block 将显着减少每个请求的 CPU 时间。缓存模式非常简洁,但是将这种缓存和驱逐逻辑放在哪里的问题对我来说有点神秘。

例如,假设一个应用程序的主页有一个公告部分。这部分需要在以下之后重新渲染:

  • 帐户中任何人的第一次阅读,
  • 正在添加新公告,以及
  • 旧公告被删除
  • evict_announcements_section_from_cache() 放置位置的一些选项方法调用:
  • 在公告模型的.delete() , 和 .put()方法
  • 在 RequestHandler 的 .post()方法
  • 其他地方?

  • 然后在 RequestHandler 的获取页面中,我可能会调用 get_announcements_section()这将遵循标准的内存缓存模式(检查缓存,在未命中时添加到缓存,返回值)并将该 HTML 传递给该页面 block 的模板。

    将缓存驱逐逻辑放在模型、 Controller /请求处理程序或其他地方是典型的设计模式吗?理想情况下,我想避免在代码中使用触手来驱逐逻辑。

    最佳答案

    我在一个开源 Github 项目中就有这样一个装饰器:

    http://github.com/jamslevy/gae_memoize/tree/master

    它更深入一点,允许强制执行函数(当你想刷新缓存时)或强制本地缓存......这些正是我在我的应用程序中需要的东西,所以我将它们烘焙到我的memoize 装饰器。

    关于python - 在 App Engine 应用程序中放置缓存驱逐逻辑的最佳位置在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313626/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com