我有一个ECS Fargate集群,它的服务可以根据队列中的消息数量来生成任务。每个任务在队列上进行长时间轮询,每次处理一条消息。如果队列收到超过5条消息,就会产生一个新任务,并开始接收消息。当队列从前一个阈值降到低于5条消息时,它会关闭一个任务。
我的问题是,当服务决定缩小规模时,它如何知道要杀死什么任务?所有任务都可以处理一条消息。每个任务都会连续运行,并从SQS中进行长时间的拉扯,所以它如何知道任务处于有效的关闭状态(刚刚完成了消息)和无效的关闭状态(当前正在处理消息)。
发布于 2020-04-23 18:36:24
有一个有待解决的问题需要改进任务的终止,因为人们和你有同样的担忧:
从这个问题出发,可以使用stopTimeout将任务终止对进程的影响降到最低。参数是:
如果容器本身不正常退出,则等待时间(以秒为单位)才能强制终止容器。
但ESC还有一个新特性:
有了这个,您可以设置:
容器启动和关闭的依赖项以及每个容器的启动和停止超时值。
因此,通常对任务的终止没有完全控制,就像AutoScaling组中的实例终止一样。但事情正在进行中。
https://stackoverflow.com/questions/61392241
复制相似问题