我在 Spring 项目中有一个 ActiveMQ 消费者,其定义方式如下:
<jms:listener-container container-type="default"
cache="consumer" destination-type="queue" connection-factory="pooledJmsConnectionFactory"
acknowledge="auto" concurrency="1-1">
<jms:listener destination="GIVE_A_NAME_QUEUE"
ref="someLongWorkerConsumer" method="onMessage" />
</jms:listener-container>
一切正常,当我在队列中收到一条消息时,将访问 onMessage 方法,并且正在使用来自队列中提供的项目的数据执行工作。
现在,因为我正在执行一些长时间运行的操作,在某些情况下,例如,如果作业运行超过 X 小时 - 我希望中止操作并提取队列中的下一个项目并且处理。
这个或任何可取的解决方案是否有一些开箱即用的功能?