Google app engine 应用引擎任务队列任务影响面向用户的处理程序性能
我的队列任务使用Google app engine 应用引擎任务队列任务影响面向用户的处理程序性能,google-app-engine,google-cloud-datastore,app-engine-ndb,google-app-engine-python,Google App Engine,Google Cloud Datastore,App Engine Ndb,Google App Engine Python,我的队列任务使用urlfetch从外部API获取一些数据,并将其保存到ndb数据存储实体 总共大约需要15秒 不知何故,当任务运行时,所有其他处理程序(简单json响应处理程序)都会变慢。(较慢表示+500毫秒) 这可能是什么原因造成的? 后台任务的概念不是不影响面向用户的请求吗 我偶然发现了,但我的任务需要超过1秒的时间才能完成。我看不出这对我有什么帮助。默认情况下,您的任务由服务于用户请求的相同实例执行。无论是否为后台,它们共享相同的CPU、内存和带宽。最好在不同的模块上运行这些任务,这意味
urlfetch
从外部API获取一些数据,并将其保存到ndb数据存储实体
总共大约需要15秒
不知何故,当任务运行时,所有其他处理程序(简单json响应处理程序)都会变慢。(较慢表示+500毫秒)
这可能是什么原因造成的?
后台任务的概念不是不影响面向用户的请求吗
我偶然发现了,但我的任务需要超过1秒的时间才能完成。我看不出这对我有什么帮助。默认情况下,您的任务由服务于用户请求的相同实例执行。无论是否为后台,它们共享相同的CPU、内存和带宽。最好在不同的模块上运行这些任务,这意味着使用不同的实例。可以通过为任务队列指定目标来完成此操作
请注意,当当前实例的响应变慢时,自动应用程序引擎调度程序通常会旋转新实例。但是,您案例中的速度减慢不是因为标准请求量的增长,而是因为一个需要更长时间的异常请求。这可防止自动计划程序对增加的延迟作出反应。您可以切换到手动或基本调度,这样可以更好地控制容量(实例总数)和旋转新实例的规则,但为后台任务创建不同的模块是更好的解决方案。默认情况下,您的任务由服务于用户请求的相同实例执行。无论是否为后台,它们共享相同的CPU、内存和带宽。最好在不同的模块上运行这些任务,这意味着使用不同的实例。可以通过为任务队列指定目标来完成此操作 请注意,当当前实例的响应变慢时,自动应用程序引擎调度程序通常会旋转新实例。但是,您案例中的速度减慢不是因为标准请求量的增长,而是因为一个需要更长时间的异常请求。这可防止自动计划程序对增加的延迟作出反应。您可以切换到手动或基本调度,这样可以更好地控制容量(实例总数)和旋转新实例的规则,但为后台任务创建不同的模块是更好的解决方案