我有一个发布到ActiveMQ虚拟主题的Java应用程序,还有两个从各自的虚拟主题使用者队列使用的Java应用程序。这些虚拟主题主题和队列遵循命名约定。我的经纪人配置中目前没有定义任何目标拦截器。
我希望消息在应用程序的队列之一中(该应用程序应该实时处理消息,而旧消息则无用)来设置消息到期时间,以便在此时间之后消息将从队列中删除。
我希望另一个应用程序的队列中的消息(该应用程序不是实时应用程序,但是如果该应用程序丢失了消息,那将很糟糕)不设置消息到期时间,以便该应用程序可以使用这些消息消息。
我知道我可以使用message.setJMSExpiration()
发送消息时设置消息的过期时间,但这可以设置两个队列的过期时间。
有没有办法(最好是通过代理配置,这样我就不必修改第一个应用程序)来设置第一个使用者队列而不是第二个使用者队列的消息到期时间?