Время обработки очереди задач GAE в java

В моем веб-приложении jsp при обработке отчета всегда возникает DeadlineExceededException. Поэтому я переместил процесс в очередь задач движка приложения. Но, используя очередь задач, он не будет генерировать отчет и никогда не показывать никаких сообщений об ошибках. Является ли очередь задач подходящим решением для DeadlineExceededException или очередь задач имеет ограничение по времени обработки в 1 минуту.

Мой queue.xml настроен, как показано ниже.

<?xml version="1.0" encoding="UTF-8"?>
<queue-entries>
    <queue>
        <name>default</name>
        <rate>5/s</rate>
    </queue>
    <queue>
        <name>subscription-queue</name>
        <rate>5/s</rate>
    </queue>
    <queue>
        <name>excel-generator-queue</name>
        <rate>5/s</rate>
    </queue>
</queue-entries>

person Master Mind    schedule 28.09.2012    source источник


Ответы (2)


Предел времени ожидания очереди задач намного превышает 1 минуту. (Это должно быть не менее 10 минут; вам придется прочитать документы GAE, чтобы узнать).

Кроме того, проверьте, используете ли вы очереди push или pull и довольны ли вы своим выбором. Я думаю, что ваша конфигурация может быть для типа очереди по умолчанию.

Поместили ли вы какой-либо код ведения журнала в код, вызываемый поставленными в очередь задачами? Это позволит вам узнать, выполняется код или нет.

person Ian Marshall    schedule 28.09.2012

Необходимо учитывать два крайних срока: крайний срок для отдельных вызовов API App Engine, которые вы делаете, и общий крайний срок для обработки вашей задачи.

Когда вы вызываете API App Engine, иногда вызов не завершается в течение примерно 5 секунд, и вы получаете исключение DeadlineExceededException. У вас есть возможность позвонить еще раз. Некоторые API, такие как Url Fetch и Lease Tasks, позволяют указать крайний срок. Если вы поймаете исключение, вы увидите, какой код истек.

При использовании очередей задач общий крайний срок обработки задачи составляет 10 минут, если только вы не используете серверные части — https://developers.google.com/appengine/docs/python/backends/ (если очереди задач не используются, общий срок выполнения составляет всего 60 секунд.)

В вопросе упоминается, что «он не будет генерировать отчет». Когда задачи выполняются, нет веб-браузера, чтобы увидеть отчеты о ходе выполнения или окончательный отчет. Добавьте ведение журнала в генерацию отчета. Сохраните созданный отчет в хранилище данных или отправьте его по электронной почте.

person Eric Willigers    schedule 03.10.2012