2013-09-01 2 views
0

Я пытаюсь использовать Google App Engine в качестве посредника между мобильной платформой и популярной облачной службой хранения. Мобильное приложение сообщает движку приложения о том, какие части конкретного файла он хочет получить от облачного хранилища. Затем движок приложения должен извлекать данные файла, обрабатывать его и извлекать запрошенные части для отправки обратно в мобильное приложение. Да, он должен быть настроен таким образом, мобильный os не может читать файлы этого конкретного формата, но может использовать механизм приложения, и это конкретное облачное хранилище интегрировано с требуемым программным обеспечением для настольных компьютеров.Длительный процесс Google App Engine, который должен быть возвращен потребителю

Проблема: обработка файла и извлечение данных превышает 60-секундный отклик ответа, а очередь задач не может вернуть данные обратно в первоначально запрашиваемое мобильное приложение. в большинстве случаев данные будут готовы вернуться через 1-3 минуты. Я понимаю, что Channel Api может позволить мне получать сообщения в режиме реального времени через веб-представление о том, когда данные готовы, но этот api очень дорог, поскольку мне нужно будет разрешать тысячи подключений в день, и каждый пользователь должен имеют свой собственный канал в документах. Должен ли я заглянуть в опрос (вне канала api)? Какие модели дизайна, методы или другие сервисы я должен искать (я использовал gae из-за простоты использования, автоматического масштабирования и безопасности, я - шоу одного человека).

Продукт зависит от возможности, которая существует только в Java для обработки данных. Благодарю.

+0

Вы посмотрели на Google облачный обмен сообщениями для системы Android и ios push в зависимости от того, какая мобильная ОС? – Faisal

+0

Это довольно крутая возможность, но мне нужно гарантировать, что приложение получит сообщение, но использование push-уведомлений на iOS можно легко отбросить. – jwilkey

+0

Для всех, кто приземляется здесь - для меня это стало проблемой эффективности моего приложения. Это не ответ, потому что он не затрагивает первоначальную проблему обработки длинных задач в GAE с минимальными затратами: в моем приложении я превращал сотни, если не тысячи представлений сущностей Map в POJO для обработки, которые работали нормально когда приложение было на настольной платформе. Теперь я просто возвращаю объекты JSONfied Map на мобильную платформу и обрабатываю их там = МНОГО быстрее. Так совет для других: найти предостережения для эффективности в приложениях GAE (или любом приложении), чтобы максимизировать сбережения – jwilkey

ответ

0

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

0

У экземпляров Appendine 'Backend' нет ограничения на 60 секунд. Вы можете увидеть сравнение между обычным экземпляром frontend и экземпляром бэкэнд здесь: https://developers.google.com/appengine/docs/java/backends/

+0

Да, и очередь задач (в настоящее время имеет ограничение в 10 минут). Но проблема в том, что мне нужно вернуть данные запрашивающему потребителю, как только данные будут доступны, наиболее эффективным способом, прежде всего в отношении стоимости. – jwilkey

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

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