问题:在项目实际使用场景中,难免会遇到延迟消息发布以及已经发布之后的删除。例如:2小时后关灯,临时改变了,又需要取消2小时后关灯的场景。
目前碰到的问题是删除步骤很繁琐。
目前emqx提供了api删除的方法 官方api。调用这个api需要提供msgId,但是一般在实际应用中msgId是EMQX自动生成的,而又在业务中无法同步拿到这个ID作记录方便以后直接删除。
所以目前想删除一个topic,需要几个步骤:
- 通过查看延迟消息列表来查询出所有消息
- 自行在业务中根据topic(或其他)来查询出指定的消息获得msgId
- 通过msgId再去调用延迟消息删除api。
这样无形中增加了一些使用成本,一般来说向同一个topic发送延迟消息后,之前的一般会作废,所以建议官方能不能提供一个根据topic来删除指定topic下的所有延迟消息或者其他的方式,或者说发布延迟消息时这个msgId能是自己生成的吗?或者说有更好的方法解决这个问题?