我有一个ActiveMQ消息系统,我想只从队列中删除一些预定的消息。
我可以通过发送到队列的ScheduledMessage.AMQ_SCHEDULER_ACTION_REMOVEALL
消息删除所有预定的消息。
我可以通过发送AMQ_SCHEDULER_ACTION_REMOVE
消息按ID删除消息。
但是有没有办法用选择器删除所有消息(可能是消息上的属性)?
我检查了ActiveMQ的Jolokia REST API,但似乎无法获得有关预定消息的信息。
目前不支持该功能。您需要查看源代码并自己实现,然后将其贡献给社区。虽然试图使用消息代理,因为数据库会转过来并咬你,所以我建议谨慎使用消息代理。
您需要实现一个新的删除指令,如AMQ_SCHEDULER_ACTION_REMOVE_SELECTED,并定义选择器在这种情况下的工作方式,SQL92字符串等,然后在Scheduler存储接口上添加一个API,并在KahaDB模块的Scheduler实现中实现它。