TaskPoolConfig.java 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. package com.fdkankan.scene.download.config;
  2. import java.util.concurrent.Executor;
  3. import java.util.concurrent.ExecutorCompletionService;
  4. import org.springframework.context.annotation.Bean;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.http.client.ClientHttpRequestFactory;
  7. import org.springframework.http.client.SimpleClientHttpRequestFactory;
  8. import org.springframework.scheduling.annotation.EnableAsync;
  9. import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
  10. import org.springframework.web.client.RestTemplate;
  11. /**
  12. * <p>
  13. * TODO
  14. * </p>
  15. *
  16. * @author dengsixing
  17. * @since 2022/2/22
  18. **/
  19. @Configuration
  20. public class TaskPoolConfig {
  21. @Bean("sceneDownLoadExecutror")
  22. public ThreadPoolTaskExecutor sceneDownLoadExecutror(){
  23. ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
  24. taskExecutor.setCorePoolSize(3);
  25. taskExecutor.setMaxPoolSize(3);
  26. taskExecutor.setQueueCapacity(3);
  27. taskExecutor.setKeepAliveSeconds(60);
  28. taskExecutor.setThreadNamePrefix("sceneDownLoadThread--");
  29. taskExecutor.setWaitForTasksToCompleteOnShutdown(true);
  30. taskExecutor.setAwaitTerminationSeconds(60);
  31. return taskExecutor;
  32. }
  33. // @Bean
  34. // public ExecutorCompletionService completionService(ThreadPoolTaskExecutor sceneDownLoadExecutror){
  35. // return new ExecutorCompletionService<Integer>(sceneDownLoadExecutror);
  36. // }
  37. @Bean
  38. public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
  39. return new RestTemplate(factory);
  40. }
  41. @Bean
  42. public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
  43. SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
  44. factory.setReadTimeout(5000);//ms
  45. factory.setConnectTimeout(15000);//ms
  46. return factory;
  47. }
  48. }