Python 限制每个应用程序引擎实例的任务请求数

Python 限制每个应用程序引擎实例的任务请求数,python,google-app-engine,memory-management,python-2.7,task-queue,Python,Google App Engine,Memory Management,Python 2.7,Task Queue,我有一个googleappengine应用程序,它周期性地处理内存密集型长时间运行的任务。我在Python2.7运行时以线程安全模式使用taskqueue API,因此我的每个实例都同时处理多个任务。因此,我经常会遇到以下错误: 在总共处理8个请求后,超过了137.496 MB的软专用内存限制 处理此请求后,发现处理此请求的进程占用了太多内存,因此被终止。这可能会导致应用程序的下一个请求使用新进程。如果经常看到此消息,则应用程序中可能存在内存泄漏 据我所知,每个实例都承担了8个任务,最终达到了软

我有一个googleappengine应用程序,它周期性地处理内存密集型长时间运行的任务。我在Python2.7运行时以线程安全模式使用taskqueue API,因此我的每个实例都同时处理多个任务。因此,我经常会遇到以下错误:

在总共处理8个请求后,超过了137.496 MB的软专用内存限制

处理此请求后,发现处理此请求的进程占用了太多内存,因此被终止。这可能会导致应用程序的下一个请求使用新进程。如果经常看到此消息,则应用程序中可能存在内存泄漏

据我所知,每个实例都承担了8个任务,最终达到了软内存限制。这些任务一开始使用的内存非常少,但最终会增长到15-20MB左右

有没有办法限制告诉应用程序引擎为一个实例分配不超过5个请求?或者告诉App Engine任务预计在10分钟内使用20MB内存,并进行相应调整


我不希望使用后端API,因为我希望处理任务的实例数量能够自动伸缩,但如果这是唯一的方法,我想知道如何构造它。

目前还没有任何方法向应用程序引擎基础结构提供这方面的建议。如果您的任务现在不应该运行,您可以让它们返回一个非200状态代码,在这种情况下,它们将自动重试(可能在另一个实例上),但这可能会导致大量的搅动。后端可能是您最好的选择

如果您设置了动态后端,它们将仅根据任务队列流量的需要进行旋转。通过将后端的URL指定为“target”参数,可以将任务发送到后端


通过使用拉队列,您可以获得对任务执行的更多控制。然后,您可以根据自己的选择启动后端(或者使用推送队列任务),并让实例以任何适合的方式将任务从推送队列中拉出来。

目前没有任何方法向应用引擎基础结构建议这一点。如果您的任务现在不应该运行,您可以让它们返回一个非200状态代码,在这种情况下,它们将自动重试(可能在另一个实例上),但这可能会导致大量的搅动。后端可能是您最好的选择

如果您设置了动态后端,它们将仅根据任务队列流量的需要进行旋转。通过将后端的URL指定为“target”参数,可以将任务发送到后端

通过使用拉队列,您可以获得对任务执行的更多控制。然后,您可以根据自己的选择旋转后端(或者使用推队列任务),并让实例以任何适合的方式将任务从拉队列中拉出来