다중 스레드를 사용 springboot 제어 층 인터페이스 호출

동일 걸릴 다른 사람이 아닌 전체 오류뿐만 아니라 특정 시험없이
구성 클래스 : 

패키지 com.tansuo365.test1.config을;

수입 org.springframework.context.annotation.Bean;
수입 org.springframework.context.annotation.Configuration;
수입 org.springframework.core.task.TaskExecutor;
수입 org.springframework.scheduling.annotation.EnableAsync;
수입 org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;

수입 java.util.concurrent.ThreadPoolExecutor;

@Configuration
@EnableAsync
공공  클래스 AsyncConfig {

    @콩
    공개 된 TaskExecutor 된 TaskExecutor () {
        실행기위한 ThreadPoolTaskExecutor가된다 = 새로운 새 ) (위한 ThreadPoolTaskExecutor이고;
         // 세트 코어 스레드 수 
        executor.setCorePoolSize (5. );
         // 설정된 최대 스레드 번호 
        executor.setMaxPoolSize (10 );
         // 큐 용량 세트 
        (20 인 executor.setQueueCapacity를 )
         // 집합 스레드 (초) 활성 시간 
        executor.setKeepAliveSeconds (60 );
         // 기본 스레드 이름 설정 
        ( "danhao-"executor.setThreadNamePrefix을 );
         // 설정이 정책 거부 
        executor.setRejectedExecutionHandler을 ( 새로운 새로운ThreadPoolExecutor.CallerRunsPolicy ());
         // 스레드 풀의 종료 후 가까운 모든 작업에 대한 대기 
        executor.setWaitForTasksToCompleteOnShutdown ( true로 )
         반환 집행자;
    }
}

참고 새 주석 클래스 구성이 @EnableAsync

제어 층 :

    @Async
    (@RequestMapping "/ getChukuNumber" )
     공공 ListenableFuture <문자열> genBillCode (문자열 유형) 가 발생 예외 {
        StringBuffer를 billCodeStr는 = 의 StringBuffer를 ();
        billCodeStr.append (chukudanPrefix);
        billCodeStr.append (DateUtil.getCurrentDateStr ());
        문자열 todayMaxChukuDanNumber = chukuZongService.getTodayMaxChukuDanNumber ();
        경우 (todayMaxChukuDanNumber! = null이 ) {
            billCodeStr.append (StringUtil.formatCode (todayMaxChukuDanNumber));
        } 다른 {
            billCodeStr.append ( "0001" );
        }
        돌아가  새로운 AsyncResult를 <> (billCodeStr.toString ());
//         반환 billCodeStr.toString (); 
    }

참고 제어 계층과 새로운 주석 @Async의 반환 값의 반환 형식
시작 클래스 같은 :

// @EnableCaching 
@SpringBootApplication
@MapperScan (값 = { "com.xxxxxxxxx.test1.mapper" })
@EnableAsync는 // 비동기 작업을 가능하게 
공공  클래스 Test1Application을 {

    공공  정적  무효 메인 (문자열 []에 args) {
        SpringApplication.run (. Test1Application 클래스 , 인수);
    }

}

메모 시작 클래스에 @EnableAsync 코멘트

추천

출처www.cnblogs.com/ukzq/p/12204138.html