线程池创建
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
@Configuration
@EnableAsync
public class AsyncConfiguration {
@Bean("messageTaskExecutor")
public Executor messageTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("MessageAsync-");
executor.initialize();
return executor;
}
}
controller层调用
@PostMapping("/datasource/test")
@ApiOperation(value = "tst")
public void test() {
theard.test1();
theard.test2();
}
业务层
import com.alibaba.fastjson.JSONObject;
import com.dtdream.cascade.dao.newplugin.catalog.CatalogHis;
import com.dtdream.cascade.dao.newplugin.catalog.CatalogHisDao;
import com.dtdream.cascade.dao.newplugin.catalog.TCatalogDataTestDao;
import com.dtdream.cascade.dao.newplugin.catalog.TCatalogTestData;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@Service
public class Theard {
@Autowired
private CatalogHisDao catalogHisDao;
@Autowired
private TCatalogDataTestDao tCatalogDataDao;
@Async("messageTaskExecutor")
public void test1() {
int i = 0;
List<TCatalogTestData> byCatalogIdMax = tCatalogDataDao.getByCatalogIdLimit(0, 428);
}
@Async("messageTaskExecutor")
public void test2() {
int i = 0;
List<TCatalogTestData> byCatalogIdMax = tCatalogDataDao.getByCatalogIdLimit(428, 428);
}
}