В качестве продолжения еще один вопрос, который я задал, у меня есть основной вопрос о самом простом способе заставить сервер python webapp2 предоставлять данные json, которые слишком велики (около 100 КБ) для отправки в виде сообщения Channel API для клиент .
Сервер webapp2 генерирует несколько файлов данных в течение нескольких минут на основе запроса клиента, и я думаю, что хотел бы, чтобы API канала отправлял сообщения с URL-адресом клиенту, когда данные готовы, и клиент (приложение GWT) может выполнить HTTP-запрос GET для получения данных. Каждый файл данных уникален для клиента, поэтому сервер должен иметь обработчик запросов, который предоставит клиенту соответствующий файл данных.
Можете ли вы написать обработчик запросов, который может предоставить правильный файл данных непосредственно из другого обработчика запросов для этого конкретного клиента при вызове запроса? Или мне нужно сначала хранить данные с помощью Cloud SQL или хранилища данных, пока клиент не попросит об этом? Вот неполный пример кода того, что я хотел бы сделать:
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)