TTL支持Spring的ThreadPoolTaskExecutor,如提供getTtlAsyncTaskExecutor · Issue #173 · alibaba/transmittable

您所在的位置:网站首页 starttimeout TTL支持Spring的ThreadPoolTaskExecutor,如提供getTtlAsyncTaskExecutor · Issue #173 · alibaba/transmittable

TTL支持Spring的ThreadPoolTaskExecutor,如提供getTtlAsyncTaskExecutor · Issue #173 · alibaba/transmittable

2024-07-16 16:14| 来源: 网络整理| 查看: 265

我之前在项目里也遇到了类似的问题,然后自己根据ThreadPoolTaskExecutor,实现了一个TtlThreadPoolTaskExecutor。一开始想对ThreadPoolTaskExecutor底层的threadPoolExecutor进行包装,后来发现它并未对外暴露,这个想法不成立。那我们就着手在执行时进行包装,复写它的execute(),submit()等方法。这种方式,也不会干扰其它的方法,对内部线程池参数的修改。具体如下,实现起来很简单:

submit(Runnable task) { return super.submit(Objects.requireNonNull(TtlRunnable.get(task), ERROR_MESSAGE)); } @Override public Future submit(Callable task) { return super.submit(Objects.requireNonNull(TtlCallable.get(task), ERROR_MESSAGE)); } @Override public ListenableFuture submitListenable(Runnable task) { return super.submitListenable(Objects.requireNonNull(TtlRunnable.get(task), ERROR_MESSAGE)); } @Override public ListenableFuture submitListenable(Callable task) { return super.submitListenable(Objects.requireNonNull(TtlCallable.get(task), ERROR_MESSAGE)); } }

@oldratlee @liauraljl



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3