【问题标题】:Concurrency with GAE basic scaling in Node.jsNode.js 中 GAE 基本扩展的并发性
【发布时间】:2019-10-02 13:07:36
【问题描述】:

我正在尝试通过将 Google Cloud Tasks 与运行 node.js 的 Google App Engine 一起使用来运行较长的任务(>10 分钟)。

目标是其他应用将数百个任务推送到 Cloud Tasks 队列,并且 Google App Engine 的每个实例将一个一个地处理这些任务。我正在使用所谓的 basic_scaling 选项来允许任务运行长达 24 小时(与 automatic_scaling 的 10 分钟限制相比)。

目前它可以工作,但似乎一个实例一次处理多个请求。

有没有办法通过“基本”扩展选项限制每个实例的最大并发请求数?

【问题讨论】:

    标签: node.js google-app-engine concurrency google-cloud-platform google-cloud-tasks


    【解决方案1】:

    在官方文档中,Establish Rate Limits 下有两个标志可用于配置队列速率限制:

    --max-dispatches-per-second=[DISPATCH_RATE]
    --max-concurrent-dispatches=[MAX_RUNNING]
    

    如果您试图确保一次只处理一项任务,那么--max-concurrent-dispatches 似乎是您的解决方案。

    【讨论】:

    • 如果我在basic_scaling 中设置max_instances: 3 以运行最多3 个实例会怎样。我设置--max-concurrent-dispatches=3 来完成由 3 个实例处理云任务,但每个实例一次只能处理一个任务。不幸的是,看起来任务将这 3 个并发请求发送到一个实例,而没有创建其他两个实例。从 GAE basic scaling 的文档中,我不明白它在什么条件下会启动额外的实例。你呢?
    • 根据cloud.google.com/appengine/docs/standard/nodejs/config/…默认是10,听起来您希望App Engine以“1”的并发运行。
    • 您指的是automatic_scaling.max_concurrent_requests,但我的问题是针对basic_scaling。为什么我关心基本缩放是上面描述的超时问题。
    猜你喜欢
    • 2017-07-26
    • 2014-05-15
    • 2013-06-20
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多