我有一个名为
DataProcessService
的服务,它部署在服务中的多个实例中以进行扩展。
DataProcessService
有SQS消费者,它从SQS主题接收消息,一旦该过程完成,服务就会从队列中删除该消息。
我已启用 SQS 消息 可见性超时 为 15 分钟
现在我遇到的问题是:
DataProcessService
的一个实例收到一条消息并进行处理,需要超过 15 分钟,同时另一个实例由于 15 分钟的可见性超时而收到相同的消息。
如何确定一个实例是否仍在处理消息,并确保另一个实例不会选择要处理的消息
我也遇到过类似的问题,所以我的处理方法是。我将把每个实例称为一个进程,因为我假设两个实例执行相同的业务逻辑,对吗?如果我的理解有误请指正。
希望这对您有用。