关于延迟消息删除的一点建议

问题:在项目实际使用场景中,难免会遇到延迟消息发布以及已经发布之后的删除。例如:2小时后关灯,临时改变了,又需要取消2小时后关灯的场景。

目前碰到的问题是删除步骤很繁琐。

目前emqx提供了api删除的方法 官方api。调用这个api需要提供msgId,但是一般在实际应用中msgId是EMQX自动生成的,而又在业务中无法同步拿到这个ID作记录方便以后直接删除。
所以目前想删除一个topic,需要几个步骤:

  1. 通过查看延迟消息列表来查询出所有消息
  2. 自行在业务中根据topic(或其他)来查询出指定的消息获得msgId
  3. 通过msgId再去调用延迟消息删除api。

这样无形中增加了一些使用成本,一般来说向同一个topic发送延迟消息后,之前的一般会作废,所以建议官方能不能提供一个根据topic来删除指定topic下的所有延迟消息或者其他的方式,或者说发布延迟消息时这个msgId能是自己生成的吗?或者说有更好的方法解决这个问题?

同意,这个功能应该已经安排上了,我去跟踪一下。感谢反馈!

请问这个问题现在解决了么?我们的业务也遇到了同样的问题。

年初就已经加了 根据 topic 删除 延迟消息的 API 了。
https://www.emqx.io/docs/en/v5.7/admin/api-docs.html#tag/MQTT/paths/~1mqtt~1delayed~1messages~1{topic}/delete