Performance Google应用程序引擎:后台线程和任务队列之间的性能差异

Performance Google应用程序引擎:后台线程和任务队列之间的性能差异,performance,google-app-engine,task-queue,background-thread,asynchronous,Performance,Google App Engine,Task Queue,Background Thread,Asynchronous,在我的GAE应用程序中,有一些任务正在任务队列中异步执行。这些任务涉及从API获取数据并对其进行处理。随着应用程序的成熟,数据量不断增加,因此在某些情况下,taskqueue 10分钟的限制开始被打破。为了解决这个问题,我将应用程序移动到GAE模块体系结构,并将异步执行移动到后台线程。这是可行的,但执行速度变慢了很多,通常需要8倍的时间。这背后的原因是什么?这方面的解决方案/解决方法是什么(如果有的话) 编辑: 我想这是因为python的多线程性能差。这是真的吗?有人能证实这一点吗?您在日志中看

在我的GAE应用程序中,有一些任务正在任务队列中异步执行。这些任务涉及从API获取数据并对其进行处理。随着应用程序的成熟,数据量不断增加,因此在某些情况下,taskqueue 10分钟的限制开始被打破。为了解决这个问题,我将应用程序移动到GAE模块体系结构,并将异步执行移动到后台线程。这是可行的,但执行速度变慢了很多,通常需要8倍的时间。这背后的原因是什么?这方面的解决方案/解决方法是什么(如果有的话)

编辑:


我想这是因为python的多线程性能差。这是真的吗?有人能证实这一点吗?

您在日志中看到了什么?有可能是启动时间解释了差异吗?@AndreiVolgin据我所知,启动线程需要的是实际执行时间,而不是任何延迟。@AndreiVolgin,是的,是具体的最高配置。不过有一点不同,后面添加的模块具有基本的伸缩性。好奇的是,这里的实例数量是否会改变单次执行的情况?我想不会,但只是确定一下……只是启动时间,但你说这不是原因。如果你设置了一个较低的max_实例,它可能会瓶颈执行。如果您发送10个请求,但最多5个实例,则运行所有任务所需的时间为2秒。