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 2d209c3a..92bf0b85 100644 --- a/event/src/main/java/com/zfoo/event/manager/EventBus.java +++ b/event/src/main/java/com/zfoo/event/manager/EventBus.java @@ -91,6 +91,10 @@ public abstract class EventBus { return executors[RandomUtils.randomInt(EXECUTORS_SIZE)]; } + public static Executor asyncExecute(int hashcode) { + return executors[Math.abs(hashcode % EXECUTORS_SIZE)]; + } + private static void doSubmit(IEvent event, List receiverList) { for (var receiver : receiverList) { try { diff --git a/orm/src/main/java/com/zfoo/orm/model/persister/CronOrmPersister.java b/orm/src/main/java/com/zfoo/orm/model/persister/CronOrmPersister.java index 47bb4078..18078eed 100644 --- a/orm/src/main/java/com/zfoo/orm/model/persister/CronOrmPersister.java +++ b/orm/src/main/java/com/zfoo/orm/model/persister/CronOrmPersister.java @@ -78,7 +78,7 @@ public class CronOrmPersister extends AbstractOrmPersister { @Override public void run() { if (!OrmContext.isStop()) { - EventBus.asyncExecute().execute(new Runnable() { + EventBus.asyncExecute(entityDef.getClazz().hashCode()).execute(new Runnable() { @Override public void run() { entityCaches.persistAll(); diff --git a/orm/src/main/java/com/zfoo/orm/model/persister/TimeOrmPersister.java b/orm/src/main/java/com/zfoo/orm/model/persister/TimeOrmPersister.java index 4c2493c2..47d8c32a 100644 --- a/orm/src/main/java/com/zfoo/orm/model/persister/TimeOrmPersister.java +++ b/orm/src/main/java/com/zfoo/orm/model/persister/TimeOrmPersister.java @@ -47,7 +47,7 @@ public class TimeOrmPersister extends AbstractOrmPersister { @Override public void run() { if (!OrmContext.isStop()) { - EventBus.asyncExecute().execute(new Runnable() { + EventBus.asyncExecute(entityDef.getClazz().hashCode()).execute(new Runnable() { @Override public void run() { entityCaches.persistAll();