package com.kidgrow.common.utils; import com.alibaba.ttl.TtlCallable; import com.alibaba.ttl.TtlRunnable; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.util.concurrent.ListenableFuture; import java.util.concurrent.Callable; import java.util.concurrent.Future; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @Description: 这是{@link ThreadPoolTaskExecutor}的一个简单替换,可搭配TransmittableThreadLocal实现父子线程之间的数据传递
* @Project:
* @CreateDate: Created in 2020/2/13 16:58
* @Author: liuke */ public class CustomThreadPoolTaskExecutor extends ThreadPoolTaskExecutor { private static final long serialVersionUID = -5887035957049288777L; @Override public void execute(Runnable runnable) { Runnable ttlRunnable = TtlRunnable.get(runnable); super.execute(ttlRunnable); } @Override public Future submit(Callable task) { Callable ttlCallable = TtlCallable.get(task); return super.submit(ttlCallable); } @Override public Future submit(Runnable task) { Runnable ttlRunnable = TtlRunnable.get(task); return super.submit(ttlRunnable); } @Override public ListenableFuture submitListenable(Runnable task) { Runnable ttlRunnable = TtlRunnable.get(task); return super.submitListenable(ttlRunnable); } @Override public ListenableFuture submitListenable(Callable task) { Callable ttlCallable = TtlCallable.get(task); return super.submitListenable(ttlCallable); } }