Google app engine 应用程序引擎:将数据加载到自动缩放实例的内存中

Google app engine 应用程序引擎:将数据加载到自动缩放实例的内存中,google-app-engine,caching,go,google-cloud-datastore,Google App Engine,Caching,Go,Google Cloud Datastore,出于性能/成本原因,我的应用程序模块[default]的每个实例都需要将数据从数据存储加载到本地内存中,在本地内存中,数据将是只读的 一个单独的模块更新数据存储[updater]中的数据,并且数据需要每隔几分钟在每个默认实例中完全刷新,最好是在更新程序模块更新数据时 将数据加载到实例内存所花费的时间超过了单个用户请求的合理时间 我会使用带有后台上下文的线程goroutine来重新加载每个[default]实例中的数据,但在自动缩放的模块中不支持后台上下文 当更新程序模块更新数据时,我应该如何更新

出于性能/成本原因,我的应用程序模块[default]的每个实例都需要将数据从数据存储加载到本地内存中,在本地内存中,数据将是只读的

一个单独的模块更新数据存储[updater]中的数据,并且数据需要每隔几分钟在每个默认实例中完全刷新,最好是在更新程序模块更新数据时

将数据加载到实例内存所花费的时间超过了单个用户请求的合理时间

我会使用带有后台上下文的线程goroutine来重新加载每个[default]实例中的数据,但在自动缩放的模块中不支持后台上下文

当更新程序模块更新数据时,我应该如何更新每个[默认]实例的内存


我使用的是go运行时环境。

查看memcachedI的使用情况,我觉得您的方法对appengine来说是错误的。您建议如何每隔几分钟刷新一次数据。您必须将请求定向到特定实例,该实例点击处理程序以调用刷新。如果在热身过程中费用昂贵,那么以后也不会有更高的效率。正如前面的评论所建议的,使用memcache。然后,您可以使用本地实例内存作为额外的缓存层,但该缓存更难过期。我会将其作为请求级缓存,也就是说,如果在一个请求中多次从memcache获取相同的实体,那么就在本地缓存它