我一直在使用任务队列模拟我的应用中的使用情况。有时,任务队列将停止,队列中的某些任务将被卡住。冻结任务的ETA最长可达几分钟。
以下是注册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 :(得分:0)
您的任务需要1到2.5秒才能执行。您将并发限制设置为10,执行速率设置为25 / s。使用上述执行时间显然无法实现这些设置。
请注意App Engine如何快速接受您的前10个任务,在稍微停顿后接受第11个任务,然后意识到没有任务完成并决定等待。然后它在这个长时间的停顿后接受了另外10个任务,再次暂停,接受了9个,暂停了,最后接受了最后的10个。
我在这里看不到任何错误 - 我根据您的设置看到了非常一致的性能。