Refine executor description in WebSocketMessageBrokerStats
Closes gh-33104
This commit is contained in:
parent
bd31e8dacc
commit
007a347ade
|
@ -30,6 +30,7 @@ import org.springframework.beans.factory.SmartInitializingSingleton;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
import org.springframework.core.task.TaskExecutor;
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
|
import org.springframework.messaging.simp.stomp.StompBrokerRelayMessageHandler;
|
||||||
|
import org.springframework.scheduling.SchedulingTaskExecutor;
|
||||||
import org.springframework.scheduling.TaskScheduler;
|
import org.springframework.scheduling.TaskScheduler;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||||
|
@ -239,9 +240,15 @@ public class WebSocketMessageBrokerStats implements SmartInitializingSingleton {
|
||||||
if (this.sockJsTaskScheduler == null) {
|
if (this.sockJsTaskScheduler == null) {
|
||||||
return "null";
|
return "null";
|
||||||
}
|
}
|
||||||
if (this.sockJsTaskScheduler instanceof ThreadPoolTaskScheduler threadPoolTaskScheduler) {
|
|
||||||
return getExecutorStatsInfo(threadPoolTaskScheduler.getScheduledThreadPoolExecutor());
|
if (!(this.sockJsTaskScheduler instanceof SchedulingTaskExecutor)) {
|
||||||
|
return "thread-per-task";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.sockJsTaskScheduler instanceof ThreadPoolTaskScheduler tpts) {
|
||||||
|
return getExecutorStatsInfo(tpts.getScheduledThreadPoolExecutor());
|
||||||
|
}
|
||||||
|
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,8 +257,12 @@ public class WebSocketMessageBrokerStats implements SmartInitializingSingleton {
|
||||||
return "null";
|
return "null";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (executor instanceof ThreadPoolTaskExecutor threadPoolTaskScheduler) {
|
if (!(executor instanceof SchedulingTaskExecutor) && (executor instanceof TaskExecutor)) {
|
||||||
executor = threadPoolTaskScheduler.getThreadPoolExecutor();
|
return "thread-per-task";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (executor instanceof ThreadPoolTaskExecutor tpte) {
|
||||||
|
executor = tpte.getThreadPoolExecutor();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (executor instanceof ThreadPoolExecutor) {
|
if (executor instanceof ThreadPoolExecutor) {
|
||||||
|
|
|
@ -65,8 +65,8 @@ class WebSocketMessageBrokerStatsTests {
|
||||||
stats.setInboundChannelExecutor(executor);
|
stats.setInboundChannelExecutor(executor);
|
||||||
stats.setOutboundChannelExecutor(executor);
|
stats.setOutboundChannelExecutor(executor);
|
||||||
|
|
||||||
assertThat(stats.getClientInboundExecutorStatsInfo()).as("inbound channel stats").isEqualTo("unknown");
|
assertThat(stats.getClientInboundExecutorStatsInfo()).as("inbound channel stats").isEqualTo("thread-per-task");
|
||||||
assertThat(stats.getClientOutboundExecutorStatsInfo()).as("outbound channel stats").isEqualTo("unknown");
|
assertThat(stats.getClientOutboundExecutorStatsInfo()).as("outbound channel stats").isEqualTo("thread-per-task");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -86,7 +86,7 @@ class WebSocketMessageBrokerStatsTests {
|
||||||
|
|
||||||
stats.setSockJsTaskScheduler(scheduler);
|
stats.setSockJsTaskScheduler(scheduler);
|
||||||
|
|
||||||
assertThat(stats.getSockJsTaskSchedulerStatsInfo()).isEqualTo("unknown");
|
assertThat(stats.getSockJsTaskSchedulerStatsInfo()).isEqualTo("thread-per-task");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue