Google app engine AppEngine队列中每个实例运行10个任务的硬限制
我有一个GAE项目,与一个应用引擎队列(以前称为“推送队列”)连接,它应该一次处理多个任务(目标是每个运行实例大约30个任务)。不知何故,我正面临着一个难以逾越的Google app engine AppEngine队列中每个实例运行10个任务的硬限制,google-app-engine,google-tasks,Google App Engine,Google Tasks,我有一个GAE项目,与一个应用引擎队列(以前称为“推送队列”)连接,它应该一次处理多个任务(目标是每个运行实例大约30个任务)。不知何故,我正面临着一个难以逾越的10*[运行实例数]极限。由于我尝试了几种不同的设置和方法,我希望你们能对此有所启发 TL;博士 针对长时间运行任务的GAE/queue设置,用PHP和Symfony编写,使用后端实例(必需),每个实例只运行10个任务。有什么提示吗 用例 我最初的用例涉及任务处理程序从API获取数据,处理数据并将其存储到BigQuery。平均而言,单个
10*[运行实例数]
极限。由于我尝试了几种不同的设置和方法,我希望你们能对此有所启发
TL;博士
针对长时间运行任务的GAE/queue设置,用PHP和Symfony编写,使用后端实例(必需),每个实例只运行10个任务。有什么提示吗
用例
我最初的用例涉及任务处理程序从API获取数据,处理数据并将其存储到BigQuery。平均而言,单个任务处理程序每分钟处理约1.500个请求。对于scale,我希望有大约10个运行实例(instance classB4_1G
)和大约300个并行运行的任务)
我在Github上创建了一个小型存储库,在那里我简化了我的用例。为此,我从谷歌自身获取了简单的示例代码。
请阅读我的问题的分步指南
依赖关系
任务运行时间相当长(每个任务约15分钟)。由于GAE前端实例在10分钟内被剪切的限制,我使用后端实例(同样,为了获得更多内存容量)
问题
一般来说,我无法运行比上述10*[运行实例计数]
更多的任务。我试了很多(见下文)
在生产环境中运行我的原始代码,每个实例的内存使用率大约为30%(如果使用B4
)。换句话说:说到资源,一个实例将能够处理更多的任务,但它会留下多达70%的RAM未使用
只是“某物”把我限制在10的这个硬限制。我不知道这个极限在哪里。也许只是某个地方的一面小旗-(
我已经试过了
显然,所有这些都没有超越限制的效果
- 在一个全新的项目(甚至帐户)中尝试了我的示例代码
- 联系谷歌云支持(大量沟通,没有真正的解决方案)
- 他们不相信有如此严格的限制
- 最可行的信息是:需要为GAE本身定义
max_concurrent_requests
- 但是这对于
是不可能的,因此对于后端实例是不可能的基本的_缩放
- 即使使用前端实例,我也无法突破限制
- 已尝试运行更多实例和/或更大的实例类型(最多
)B4\u 1G
- 尝试了前端实例(不是我的生产用例,而是测试用例)
- 使用
和入口点
标志配置GAE(请参阅)--workers
- 已尝试队列
,GAEmax\u concurrent\u请求:15
仅用于一个运行实例--workers=15
- 已尝试队列
- 尝试了php72和php73环境
- 根据文档,使用了
和app.yaml
的所有参数queue.yaml
非常感谢您。有一些,也请检查这些。感谢您的提示!我刚刚仔细检查了一下,现在可以确认没有超过配额。例如,
云API-每个区域每分钟请求数
大约为2%。有一些,也请检查这些。感谢您的提示!我刚刚仔细检查了一下,可以确认没有超过配额d目前。例如,云API-每个区域每分钟的请求量约为配额的2%