容器线程命名

一个任务执行者用于调用消费者和听者。 你可以通过设置消费者执行者容器的财产容器属性. 使用池化执行程序时,确保有足够的线程以处理所有容器间的并发。 当使用ConcurrentMessageListenerContainer,执行者对每个消费者使用一个线程(并发).spring-doc.cadn.net.cn

如果您不提供消费者遗嘱执行人,则SimpleAsyncTaskExecutor用于每个容器。 该执行者创建的线程名称类似于<豆名>-C-<>. 对于ConcurrentMessageListenerContainer<豆名>线程名称的一部分变为<豆名>-m哪里m表示消费者实例。n每次容器启动时都会递增。 因此,豆子名为容器,该容器中的线程将被命名集装箱-0-C-1,集装箱-1-C-1等等,在容器第一次启动后;集装箱-0-C-2,集装箱-1-C-2等等,在停止和随后开始之后。spring-doc.cadn.net.cn

从版本开始3.0.1,现在无论使用哪个执行者,都可以更改线程名称。 设置AbstractMessageListenerContainer.changeConsumerThreadName属性到true以及AbstractMessageListenerContainer.threadNameSupplier将被调用以获取线程名称。 这是一艘Function<MessageListenerContainer, String>,默认实现返回container.getListenerId().spring-doc.cadn.net.cn