2012-06-22 2 views
0

У меня возникли трудности с пониманием некоторых аспектов Google AppEngine Push Task Queue для java, а именно при выполнении задачи , где ответ отправляется?Куда отправляется ответ «Очередь задач приложения Google AppEngine»?

Если я что-то добавить к очереди, как это:

Queue queue = QueueFactory.getDefaultQueue(); 
queue.add(withUrl("/worker").param("key", key)); 

Затем через некоторое время эта задача выполняется, с чем-то вроде этого:

public class SomeServlet extends HttpServlet { 
    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
     throws ServletException, IOException { 
    ... 
    resp.getWriter().println("something"); //-- where does this response go??? 
    } 
} 

Извините за новичка вопрос, но где же этот ответ идет? Мое приложение не настроило обычный HTTP-запрос, поэтому он не ждет обычного ответа HTTP. Я должен упустить что-то принципиальное в очереди задач.

ответ

5

Ответ не идет никуда. В задаче, которую вы обычно пишете в хранилище данных, добавляете новые задачи в очередь задач, отправляете xmpp, вызываете внешние URL-адреса.

Если код ответа 200 OK, задача удаляется из очереди, если это код ошибки, он повторен (в зависимости от настроек повтора).

+0

Также вы можете увидеть, что он зарегистрировал на вкладке «Журналы» в консоли администратора. –

0

Нет документа, указывающего, где GAE хранит эти ответы. Я бы не удивил, что GAE просто не волнует ответ после его успешного запуска URL-адреса запроса.

Кстати, я не вижу смысла заботиться об ответе. Если вы хотите зарегистрировать то, что произошло во время выполнения задачи, вы должны использовать Log вместо этого. https://developers.google.com/appengine/docs/java/runtime#Logging

+0

Хммм ... может быть, ваш второй абзац - это целая точка: вы никогда не используете это так, чтобы вы действительно заботились об ответе HTTP? Ответ HTTP используется только посредником задачи очереди, чтобы определить, выполнено ли выполнение задачи? Вы думаете, что так? – aez

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