Mi Galaxy EMQ Book

重新驱动Message的功能需要与高级队列功能死信队列(Dead Letter Queue)配合使用。

当用户检测出接收到的某些消息是无效的消息后, 不想再次接收到这些消息但是也不想删除这些消息, 并且这些消息的接收次数还未达到重新驱动策略设置的接收次数时, 用户可选择主动将这些消息发送到死信队列中以便后续分析。

deadMessage()


将某条消息发送到死信队列

方法参数DeadMessageRequest

queueName : String : required

这个消息接收自的Queue名称。 系统默认每个Queue只有一个重新驱动策略,所以无需指定死信队列的名称

receiptHandle : String : required

需发送到死信队列的message的receiptHandle

方法返回void

deadMessageBatch()


批量将消息发送到死信队列 此操作不具有原子性,可能部分message成功删除,部分失败

方法参数DeadMessageBatchRequest

queueName : String : required

这个消息接收自的Queue名称。 系统默认每个Queue只有一个重新驱动策略,所以无需指定死信队列的名称

deadMessageBatchRequestEntryList : List< DeadMessageBatchRequestEntry > : required

需要发送到死信队列的message列表 DeadMessageBatchRequestEntry字段包括:

  1. receiptHandle : String : required

方法返回DeadMessageBatchResponse

successful : List< String >

成功的message的receiptHandle列表

failed : List< MessageBatchErrorEntry >

失败的message的receiptHandle列表及对应异常 MessageBatchErrorEntry类型的具体内容可参见sendMessageBatch()

注: 死信队列不可使用deadMessage, deadMessageBatch。