我在后端实例上运行了一个应用程序。它有11个任务。第一个是由/ _ah / start启动的,而它又启动了另外十个工作任务。工人任务具有以下结构:
done = False
while not done:
do_important_stuff()
time.sleep (30)
if a_long_time_has_passed():
done = True
每次app引擎上的执行行为都是一样的。调度任务运行并将10个工作任务排入队列。前七个工作任务开始运行,正确执行。最后三个坐在队列中,从未运行过。任务队列应用控制台显示队列中的所有十个任务,其中七个任务正在运行。
该应用程序也停止响应HTTP请求,返回503状态代码,日志未显示我的http处理程序被调用。
工作组任务队列配置为最大速率为1 / s和2个存储桶。令人好奇的是,管理控制台显示强制执行速率为0.1秒。由于任务永远运行,因此它们不会返回不成功的完成状态代码。并且cpu负载可以忽略不计。工作人员主要进行URL提取,然后再等30秒再做一次。
日志没用。我不知道去哪里找到能帮助我解决问题的诊断方法。我在免费帐户中测试。一次可以执行8个任务的限制吗?我在文档中看不到这些,但我的想法已经用完了。最后,我想要并行执行更多任务。
感谢你给我的任何建议。
答案 0 :(得分:3)
后端实例将处理多少个并发请求是有限制的,而且听起来你正在遇到这个限制。
替代方案包括:
请注意,如果您的任务受CPU限制,那么在5,2或甚至1的情况下运行10个任务将无法获得任何额外好处。