Обработка запроса в очереди задач Google App Engine

1

Мы создаем инструмент аналитики, который собирает события с веб-сайта и мобильных приложений. Мы хотим обработать запрос с помощью очереди задач в Google App engine. Когда я обращаюсь к документу на сайте Google Developers

 Queue queue = QueueFactory.getDefaultQueue();
 queue.add(withUrl("/analytics").param("id", String.valueOf(id)));

У него есть опция дать только param. Но как передать весь HTTP-запрос в очередь задач и обработать их?

Теги:
google-app-engine
google-cloud-datastore
task-queue

1 ответ

1
Лучший ответ

Я предполагаю, что главная проблема здесь в том, как передать все параметры запроса и тело запроса к задаче.

К сожалению, нет простого метода "ретрансляции" или "перенаправления" для перемещения вашего запроса в очередь задач (но было бы неплохо). Вы должны использовать метод Queue.add(TaskOptions taskOptions) чтобы добавить свою задачу.

Рекомендуемым способом создания экземпляра объекта TaskOptions является статический импорт TaskOptions.Builder.* И TaskOptions.Builder.* метода статического создания, за которым следует TaskOptions.Builder.* экземпляра (при необходимости).

И используйте один из следующих (или любых других методов payload()):

TaskOptions.payload(byte[] payload);
TaskOptions.payload(byte[] payload, String contentType);
TaskOptions.payload(String payload);

для установки содержимого запроса. Вы можете получить полезную нагрузку, прочитав ее из request.getInputStream().

Параметры запроса (если они являются частью URL-адреса, а не результатом формы POST, например), вы должны вручную скопировать их, например, TaskOptions.param(String name, String value).

  • 0
    +1 на "было бы неплохо", если бы вы могли перенаправить в очередь задач. Если все, что вы действительно хотите сделать, - это поместить некоторые данные в очередь для последующей обработки, будет немного громоздко создавать другой запрос для этого. Или лучше: я хотел бы, чтобы очереди задач поддерживали лямбды и вообще уходили от реализации сервлета.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню