У меня есть кластер ECS Fargate со службой, которая генерирует задачи на основе количества сообщений в очереди. Каждая задача выполняет длинный опрос очереди и обрабатывает одно сообщение за раз. Если в очередь поступает более 5 сообщений, запускается новая задача, и она начинает принимать сообщения. Когда очередь падает ниже 5 сообщений от предыдущего порога, она закрывает задачу.
Мой вопрос: когда служба решает уменьшить масштаб, как она узнает, какую задачу убить? Все задачи могут обрабатывать сообщения. Каждая задача выполняется непрерывно и выполняет длительное извлечение из SQS, поэтому как она узнает, что задача находится в действительном состоянии завершения (только что завершенное сообщение) и недопустимом состоянии завершения (в настоящее время обрабатывает сообщение).