我有一个DefaultMessageListenerContainer,(在我看来)没有扩展.Container被定义为侦听队列,其中有100条消息.
我希望,Container可以达到任何长度,消息将尽可能快地消耗(通过观察maxConcurrentConsumers配置).所以我认为,有7个并发消费者.(在容器启动时由2个concurrentConsumers开始)一些日志记录信息:
activeConsumerCount: 5
concurrentConsumers: 2
scheduledConsumerCount: 5
idleConsumerLimit: 1
idleTaskExecLimit: 1
maxConcurrentConsumers: 7
Run Code Online (Sandbox Code Playgroud)
我的Spring-config(它的一部分):
<bean id="abstractMessageListenerContainer" class="my.package.structure.LoggingListenerContainer" abstract="true">
<property name="connectionFactory" ref="jmscfCee" />
<property name="maxConcurrentConsumers" value="7"/>
<property name="receiveTimeout" value="100000" />
<property name="concurrentConsumers" value="2" />
</bean>
<bean class="my.package.structure.LoggingListenerContainer" parent="abstractMessageListenerContainer">
<property name="destinationName" value="MY.QUEUE" />
<property name="messageListener" ref="myMessageListener" />
</bean>
<bean id="myMessageListener" class="my.package.structure.ListenerClass"></bean>
Run Code Online (Sandbox Code Playgroud)
我的记录容器
public class LoggingListenerContainer extends DefaultMessageListenerContainer{
private static final Logger logger = Logger
.getLogger(LoggingListenerContainer.class);
@Override
protected void doInvokeListener(MessageListener listener, Message message)
throws JMSException {
logger.info("activeConsumerCount: " + this.getActiveConsumerCount());
logger.info("concurrentConsumers: " …Run Code Online (Sandbox Code Playgroud) 有没有可能找到,如果在Spring Batch中重新启动作业?
如果重新启动作业,我们确实提供了一些没有从spring-batch重新启动支持的Tasklet,并且必须实现我们自己的程序.
在JobRepository,JobOperator,JobExplorer等中找不到任何可能性.