AWS 工作守护进程甚至在处理第一条消息之前就锁定了多条消息

AWS worker daemon locks multiple messages even before the first message is processed

我已经在 AWS 的工作层上部署了一个 python-flask 网络应用程序。我将一些数据发送到关联的 SQS 队列中,守护程序将 POST 请求中的请求数据转发到我的 Web 应用程序。 Web 应用程序需要 5 分钟到 6 小时来处理请求,具体取决于发布数据的大小。我还将 worker 应用程序配置到一个自动缩放组中,以根据 CPU 利用率指标进行缩放。当我快速连续向队列发送 2 条消息时,两条消息都开始显示为正在发送。我希望守护进程将第一条消息转发到网络应用程序,然后等待它被处理后再拉出第二条消息。与此同时,自动缩放将启动另一个实例(它是,但由于第二条消息也在传输中,它无法拉取该消息),新实例将拉取并处理第二条消息。有办法实现吗?

  1. 将 Worker Configuration 下的 HTTP Connection 设置设置为 1。这应该可以防止每台服务器一次接收超过 1 条消息。
  2. 您可能需要考虑更改自动缩放配置以监控 SQS 队列深度或其他一些 SQS 指标,而不是工作人员 CPU 利用率。