2016-04-09 3 views
0

Я пишу веб-приложение в Python (googleappengine), который работает в этой стороне:Python веб-приложения отдельно обработки

пользователя загрузить исходные данные и некоторую информацию через веб-форму. Приложение считывает информацию и необработанные данные и делает большую обработку данных.

Для частичной обработки этой информации требуется веб-запрос для проверки некоторой информации. Поскольку некоторые из этих веб-запросов занимают несколько секунд, чтобы завершить, приложение сталкивается с таймаутом.

Я хочу знать, есть ли какая-либо обработка данных отдельно. Я могу показать пользователю сообщение о том, что данные «находятся в духовке», а когда обработка окончена, он покажет данные.

Как я могу запустить его отдельно? Как я могу узнать, когда он закончит?

Благодаря

ответ

0

Самый простой подход должен был бы разгрузить обработку на deferred task.

В обработчике запросов создайте ключевое значение для связи с задачей. Передайте значение ключа и данные для обработки в отложенную задачу. Верните значение ключа клиенту (я предполагаю, что запрос отправляется через javascript).

Имейте задачу записать результат обработки в хранилище данных или сохранить его в memcache (но обратите внимание, что memcache может удалить результат без предупреждения). Используйте значение ключа из обработчика в качестве ключа хранилища данных или файла memcache.

На стороне браузера, ваши javascript отправляют периодические запросы, содержащие ключ, другому обработчику запросов, который будет возвращать данные, когда он найдет их в хранилище, иначе возвращает сообщение «Не готов еще».

 Смежные вопросы

  • Нет связанных вопросов^_^