From 3d80c13c294c4e9dd3fa08975e75289e30775ad4 Mon Sep 17 00:00:00 2001 From: luca Date: Wed, 26 Jun 2024 14:18:24 +0800 Subject: [PATCH] feat[executor]:add method to get executor based on hash --- event/src/main/java/com/zfoo/event/manager/EventBus.java | 6 ++++++ net/src/main/java/com/zfoo/net/task/TaskBus.java | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/event/src/main/java/com/zfoo/event/manager/EventBus.java b/event/src/main/java/com/zfoo/event/manager/EventBus.java index c50ce6bf..9283c449 100644 --- a/event/src/main/java/com/zfoo/event/manager/EventBus.java +++ b/event/src/main/java/com/zfoo/event/manager/EventBus.java @@ -29,11 +29,13 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.ThreadFactory; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; +import java.util.function.Supplier; /** * @author godotg @@ -151,6 +153,10 @@ public abstract class EventBus { receiverMap.computeIfAbsent(eventType, it -> new ArrayList<>(1)).add(receiver); } + public static ExecutorService getExecutor(int executorHash){ + return executors[Math.abs(executorHash % EXECUTORS_SIZE)]; + } + } diff --git a/net/src/main/java/com/zfoo/net/task/TaskBus.java b/net/src/main/java/com/zfoo/net/task/TaskBus.java index 3d2fdbed..63195e1e 100644 --- a/net/src/main/java/com/zfoo/net/task/TaskBus.java +++ b/net/src/main/java/com/zfoo/net/task/TaskBus.java @@ -123,4 +123,8 @@ public final class TaskBus { return executor; } + public static ExecutorService getExecutor(int hash){ + return executors[calTaskExecutorIndex(hash)]; + } + }