一.消息的生命周期(以腾讯云cos为例子)
普通消息被发送到普通消息队列时, 初始状态为 Active,
当其被取走后在 VisibilityTimeout (消息隐匿时间)的时间内状态为 Inactive,
若超过 VisibilityTimeout (消息隐匿时间)时间后消息还未被删除,消息会重新变成 Active 状态;
如果在 VisibilityTimeout (消息隐匿时间)时间内被删除,消息状态将变为 Deleted。
消息的最长存活时间由创建队列时指定的 MessageRetentionPeriod 属性值决定,
超过此时间后消息状态变成 Expired 并将被回收。
这保证了同一条消息不会同时被多次消费,但可被顺序性地多次消费。
一旦取出消息隐藏时长过期后该消息被再次接受并处理;也可以不删除Message A,该消息可以被其他业务多次消费。
消息不被删除将会被重复消费