作为我提出的另一个问题的后续,我有一个基本问题,关于让 webapp2 python 服务器提供太大(约 100 kb)而无法作为 Channel API 消息发送给客户端的 json 数据的最简单方法。
webapp2 服务器根据客户端请求在几分钟内生成多个数据文件,我想当数据准备好时,我希望 Channel API 将带有 url 的消息发送到客户端,客户端(GWT 应用程序)可以执行 http GET 请求来获取数据。每个数据文件对客户端都是唯一的,因此服务器必须有一个请求处理程序,该处理程序将为客户端提供适当的数据文件。
您能否编写一个请求处理程序,该处理程序可以在调用请求时直接从另一个请求处理程序为该特定客户端提供正确的数据文件?或者我是否需要先使用 Cloud SQL 或 Data Store 存储数据,直到客户提出要求?这是我想做的一些不完整的示例代码:
class MainPage(webapp2.RequestHandler):
def get(self):
## This opens the GWT app
class Service_handler(webapp2.RequestHandler):
def get(self, parameters):
## This is called by the GWT app and generates the data to be
## sent to the client.
## A channel API message is sent to the client with the url
## for each data file generated.
class kml_handler(webapp2.RequestHandler):
def get(self, client_id):
## I would like to return the correct data here when it is
## called by the client. Do I need to store the data in
## Cloud SQL or the Data Store and then retrieve it
## or can this handler take the results directly from the
## Service_handler as soon as it is generated?
app = webapp2.WSGIApplication([
webapp2.Route(r'/', handler=MainPage),
webapp2.Route(r'/Service/', handler=Service_handler),
webapp2.Route(r'/_ah/channel/<connected>/', handler = connection_handler),
webapp2.Route(r'/kml/<client_id>', handler = kml_handler)
],
debug=True)