首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置Google Cloud App来创建缓存和可能的请求超时?

如何设置Google Cloud App来创建缓存和可能的请求超时?
EN

Stack Overflow用户
提问于 2015-05-08 23:32:36
回答 2查看 38关注 0票数 0

我有RSS饲料第三方网站创建缓存,这是存储在缓存文件夹中。每个请求第一次需要25-40秒,之后它从缓存中服务9-10分钟。

问题1:GAE不提供对文件系统的写入。那么我应该如何提供缓存呢?

问题2:缓存超时后,每次请求都需要25-40秒。我该怎么做呢?

有没有办法解决这个问题,或者我应该使用同时提供这两种功能的Google Compute Engine??

我读过关于这方面的文章,但没有直接回答我的问题。在这里发帖前2天被困在这里。谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-05-09 00:40:59

只需在HTTP响应中发回必要的缓存头,即可在Appengine上进行缓存。

使用task queue查询用户请求之外的下一个结果,并准备要在数据存储和/或memcache中提供的新数据。然后,后续的用户请求可以快速提供最新的数据,而不会造成设置延迟。

票数 0
EN

Stack Overflow用户

发布于 2015-05-09 03:44:54

使用NDB数据存储区中的TextProperty,而不是使用文件系统来存储文本。给它一个唯一的密钥,这样你以后就可以请求它了。

这也解决了缓存问题。通过键请求实体将使用内置的cache,或者如果它不在缓存中,它将从数据存储中获取它。

然后添加一个cron作业,每隔十分钟左右更新一次数据存储。

代码语言:javascript
复制
class RssFeed(ndb.Model):
    KEY = 'RSS'
    cache = TextProperty()
    last_updated = DateTimeProperty(auto_now=True)

    @classmethod
    def update(cls):
        # insert your code to fetch from the RSS feed
        # cache = ...
        rss_feed = cls.get_or_insert(key=self.KEY)
        rss_feed.cache = cache
        rss_feed.save()

    @classmethod
    def fetch(cls):
        rss_feed = cls.get_by_id(self.KEY)
        return rss_feed.cache

只要需要缓存的数据,就调用RssFeed.update()RssFeed.fetch()来更新缓存。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30127605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档