解决包装器类型启动时注册线程池不实时问题.

pull/39/head
chen.ma 4 years ago
parent 68b4e07f61
commit b40fc747c0

@ -70,11 +70,14 @@ public class CacheData {
Runnable runnable = () -> { Runnable runnable = () -> {
wrap.setLastCallMd5(md5); wrap.setLastCallMd5(md5);
listener.receiveConfigInfo(content); listener.receiveConfigInfo(content);
}; };
try {
listener.getExecutor().execute(runnable); listener.getExecutor().execute(runnable);
} catch (Exception ex) {
log.error("Failed to execute listener. message :: {}", ex.getMessage());
}
} }
public void setContent(String content) { public void setContent(String content) {

@ -52,10 +52,10 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor {
.keepAliveTime(2000) .keepAliveTime(2000)
.timeUnit(TimeUnit.MILLISECONDS) .timeUnit(TimeUnit.MILLISECONDS)
.workQueue(QueueTypeEnum.ARRAY_BLOCKING_QUEUE) .workQueue(QueueTypeEnum.ARRAY_BLOCKING_QUEUE)
.capacity(1) .capacity(1024)
.allowCoreThreadTimeOut(true) .allowCoreThreadTimeOut(true)
.threadFactory("dynamic-threadPool-init-config") .threadFactory("dynamic-threadPool-change-config")
.rejected(new ThreadPoolExecutor.DiscardOldestPolicy()) .rejected(new ThreadPoolExecutor.AbortPolicy())
.build(); .build();
@Override @Override
@ -84,10 +84,8 @@ public final class DynamicThreadPoolPostProcessor implements BeanPostProcessor {
* @param dynamicThreadPoolWrap * @param dynamicThreadPoolWrap
*/ */
protected void registerAndSubscribe(DynamicThreadPoolWrapper dynamicThreadPoolWrap) { protected void registerAndSubscribe(DynamicThreadPoolWrapper dynamicThreadPoolWrap) {
executorService.execute(() -> {
fillPoolAndRegister(dynamicThreadPoolWrap); fillPoolAndRegister(dynamicThreadPoolWrap);
subscribeConfig(dynamicThreadPoolWrap); subscribeConfig(dynamicThreadPoolWrap);
});
} }
/** /**

Loading…
Cancel
Save