0
我有一个~2MB文件,我的Google AppEngine服务器必须使用使用(不提供)作为服务请求计算的一部分。用于服务器计算的Google AppEngine静态文件
也就是说,客户端发出特定的请求,我的GAE服务器必须首先在此〜2MB文件中获取数据,做到用这个数据计算的一些,再服一小响应返回给客户端。
最好在哪里我存储这些数据,以便它可以快速读取和使用在计算服务器?
我有一个~2MB文件,我的Google AppEngine服务器必须使用使用(不提供)作为服务请求计算的一部分。用于服务器计算的Google AppEngine静态文件
也就是说,客户端发出特定的请求,我的GAE服务器必须首先在此〜2MB文件中获取数据,做到用这个数据计算的一些,再服一小响应返回给客户端。
最好在哪里我存储这些数据,以便它可以快速读取和使用在计算服务器?
如果下面的假设成立真
然后用文件部署代码并在启动时将文件读入内存(理想情况下使用热身请求)并从内存中对其进行操作。如果代码必须具有基于文件的语义来访问数据(读取,查找等),然后读取文件内容并将其包装在StringIO中。
你需要时,你得到一个新的请求,你可以通过导入模块,并引用名获得文件的内容分配从文件中读取到一个模块级变量的值,这样。即。 mymodule.filecontents
谢谢Tim。您能否澄清一下,我如何用我的代码部署文件,以及在启动过程中如何将它读入内存?抱歉,什么是热身请求?谢谢。 – aez
好的,你知道应用程序是如何部署到appengine的。如果是这样,文件只包含在实际的代码中。 (你没有说过,如果你使用python或java,我只能使用python,所以我说的更多的东西是基于python的,只要把这个文件看作是另一段代码就可以了,你可以使用标准open(“path to文件“)。read()类型的调用将其读入内存 –
有关热身请求的详细信息,请参阅https://developers.google.com/appengine/docs/adminconsole/instances#Warmup_Requests。基本上,appengine在发送流量之前,将会启动一个/ _ah/warmup命令来启动一个实例,通过使用热身请求将文件读入内存,您可以在启动时只读一次,而不会在每次请求时产生读取成本 –