2014-11-19 5 views
0

Я использую очереди задач для имитации использования в моем приложении. Время от времени очередь задач останавливается, и некоторые задачи в очереди застревают. ETA замороженных задач может быть до нескольких минут назад.Java Task Engine Task Queue freezees

Ниже приведены журналы очереди задач для регистрации 50 пользователей. Обратите внимание, что после выполнения 11 задач выполняется пауза в 2 минуты до тех пор, пока не будут выполнены последние 39. В любой из задач нет ошибок или попыток.

I 2014-11-19 17:16:08.436 200 0 B 2301ms /registerWorker 
I 2014-11-19 17:16:08.727 200 0 B 2661ms /registerWorker 
I 2014-11-19 17:16:08.728 200 0 B 2800ms /registerWorker 
I 2014-11-19 17:16:08.729 200 0 B 2663ms /registerWorker 
I 2014-11-19 17:16:08.730 200 0 B 2667ms /registerWorker 
I 2014-11-19 17:16:08.731 200 0 B 2662ms /registerWorker 
I 2014-11-19 17:16:08.731 200 0 B 2666ms /registerWorker 
I 2014-11-19 17:16:08.883 200 0 B 2748ms /registerWorker 
I 2014-11-19 17:16:08.940 200 0 B 2875ms /registerWorker 
I 2014-11-19 17:16:08.941 200 0 B 3014ms /registerWorker 
I 2014-11-19 17:16:09.070 200 0 B 630ms /registerWorker 
I 2014-11-19 17:18:09.132 200 0 B 1116ms /registerWorker 
I 2014-11-19 17:18:09.134 200 0 B 1116ms /registerWorker 
I 2014-11-19 17:18:09.224 200 0 B 1208ms /registerWorker 
I 2014-11-19 17:18:09.227 200 0 B 1210ms /registerWorker 
I 2014-11-19 17:18:09.228 200 0 B 1212ms /registerWorker 
I 2014-11-19 17:18:09.229 200 0 B 1213ms /registerWorker 
I 2014-11-19 17:18:09.231 200 0 B 1213ms /registerWorker 
I 2014-11-19 17:18:09.231 200 0 B 1215ms /registerWorker 
I 2014-11-19 17:18:09.232 200 0 B 1215ms /registerWorker 
I 2014-11-19 17:18:09.233 200 0 B 1216ms /registerWorker 
I 2014-11-19 17:18:12.128 200 0 B 952ms /registerWorker 
I 2014-11-19 17:18:12.135 200 0 B 961ms /registerWorker 
I 2014-11-19 17:18:12.232 200 0 B 1053ms /registerWorker 
I 2014-11-19 17:18:12.233 200 0 B 1057ms /registerWorker 
I 2014-11-19 17:18:12.325 200 0 B 1149ms /registerWorker 
I 2014-11-19 17:18:12.326 200 0 B 1151ms /registerWorker 
I 2014-11-19 17:18:12.327 200 0 B 1152ms /registerWorker 
I 2014-11-19 17:18:12.328 200 0 B 1150ms /registerWorker 
I 2014-11-19 17:18:12.328 200 0 B 1151ms /registerWorker 
I 2014-11-19 17:18:12.329 200 0 B 1154ms /registerWorker 
I 2014-11-19 17:18:13.735 200 0 B 1032ms /registerWorker 
I 2014-11-19 17:18:13.736 200 0 B 1034ms /registerWorker 
I 2014-11-19 17:18:13.737 200 0 B 1035ms /registerWorker 
I 2014-11-19 17:18:13.737 200 0 B 1035ms /registerWorker 
I 2014-11-19 17:18:13.827 200 0 B 1124ms /registerWorker 
I 2014-11-19 17:18:13.828 200 0 B 1126ms /registerWorker 
I 2014-11-19 17:18:13.830 200 0 B 1127ms /registerWorker 
I 2014-11-19 17:18:13.831 200 0 B 1128ms /registerWorker 
I 2014-11-19 17:18:13.834 200 0 B 1131ms /registerWorker 
I 2014-11-19 17:18:14.052 200 0 B 1350ms /registerWorker 
I 2014-11-19 17:18:14.331 200 0 B 544ms /registerWorker 
I 2014-11-19 17:18:14.333 200 0 B 544ms /registerWorker 
I 2014-11-19 17:18:14.334 200 0 B 546ms /registerWorker 
I 2014-11-19 17:18:14.925 200 0 B 731ms /registerWorker 
I 2014-11-19 17:18:14.928 200 0 B 733ms /registerWorker 
I 2014-11-19 17:18:14.929 200 0 B 735ms /registerWorker 
I 2014-11-19 17:18:14.930 200 0 B 736ms /registerWorker 
I 2014-11-19 17:18:14.931 200 0 B 736ms /registerWorker 
I 2014-11-19 17:18:14.937 200 0 B 743ms /registerWorker 

Мои настройки для этой задачи, как это определено в queue.xml являются:

<queue> 
    <name>register-user</name> 
    <rate>25/s</rate> 
    <bucket-size>100</bucket-size> 
    <max-concurrent-requests>10</max-concurrent-requests> 
    <retry-parameters> 
     <task-retry-limit>3</task-retry-limit> 
     <task-age-limit>1m</task-age-limit> 
    </retry-parameters> 
    </queue> 

Иногда все задачи выполняются как быстро, как ожидалось, а иногда они не делают. Является ли это ошибкой в ​​приложении?

ответ

0

Для выполнения ваших задач требуется от 1 до 2,5 секунд. Вы устанавливаете параллельный предел в 10 и скорость выполнения 25/с. Эти установки, очевидно, невозможно достичь с вышеупомянутым временем выполнения.

Обратите внимание, что App Engine быстро принял ваши первые 10 заданий, принял 11-й после небольшой паузы, затем понял, что ни одна из задач не завершена и решила подождать. Затем он принял еще 10 заданий после этой долгой паузы, снова приостановился, принял еще 9, приостановил и, наконец, принял окончательный 10.

Я не вижу здесь никакой ошибки - я вижу довольно стабильную производительность на основе ваших настроек.

+0

Почему он остановился на 2 минуты, если первые 10 заданий заняли не более 3 секунд, чтобы закончить? У меня есть настройки, установленные так, потому что иногда эти же задачи занимают ~ 300 мс. – clocksmith

+0

Возможно, потому что App Engine понял, что он не отвечает всем вашим требованиям. Попробуйте реалистичные настройки и посмотрите, есть ли у вас такая же проблема. Кстати, вы ограничили количество экземпляров или изменили какие-либо другие настройки для типа экземпляра, который выполняет эту задачу? Вы также можете просмотреть журналы этого экземпляра, чтобы узнать, есть ли какие-либо предупреждения. –

+0

Я не думаю, что это настройки. Я просто попробовал снова с теми же точными настройками, и все 50 задач были выполнены менее чем за 6 секунд. Обратите внимание, что я делаю это сразу после развертывания вскоре после/_ah/warmup. Как я уже упоминал в исходном вопросе, эта проблема прерывистая. – clocksmith