Google app engine 如何设置创建缓存和可能的请求超时的谷歌云应用程序?

Google app engine 如何设置创建缓存和可能的请求超时的谷歌云应用程序?,google-app-engine,google-compute-engine,Google App Engine,Google Compute Engine,我有RSS提要第三方网站,它创建缓存,缓存存储在缓存文件夹中。每个请求第一次需要25-40秒,之后从缓存服务9-10分钟 问题1:GAE不提供对文件系统的写入。那么我应该如何提供缓存呢 问题2:缓存超时后,每次请求都需要25-40秒。我应该如何处理这个问题 有没有办法解决这个问题,或者我需要使用谷歌计算引擎来提供这两种功能 我读过有关这方面的文章,但没有直接回答我的问题。在这里张贴前2天被困在这里。谢谢。您只需在HTTP响应中发回必要的缓存头,就可以在Appengine上进行缓存 使用a查询用户

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

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

问题2:缓存超时后,每次请求都需要25-40秒。我应该如何处理这个问题

有没有办法解决这个问题,或者我需要使用谷歌计算引擎来提供这两种功能


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

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


使用a查询用户请求之外的下一个结果,并准备要在数据存储和/或memcache中提供的新数据。随后的用户请求可以快速提供最新的可用数据,而无需设置延迟。

在NDB数据存储中使用a,而不是使用文件系统存储文本。给它一个唯一的密钥,以便将来可以请求它

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

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

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