Мы создаем инструмент аналитики, который собирает события с веб-сайта и мобильных приложений. Мы хотим обработать запрос с помощью очереди задач в Google App engine. Когда я обращаюсь к документу на сайте Google Developers
Queue queue = QueueFactory.getDefaultQueue();
queue.add(withUrl("/analytics").param("id", String.valueOf(id)));
У него есть опция дать только param. Но как передать весь HTTP-запрос в очередь задач и обработать их?
Я предполагаю, что главная проблема здесь в том, как передать все параметры запроса и тело запроса к задаче.
К сожалению, нет простого метода "ретрансляции" или "перенаправления" для перемещения вашего запроса в очередь задач (но было бы неплохо). Вы должны использовать метод 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)
.