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