봄 부팅 + 멀티 스레드 실행 시간 초과

여러 가지 방법으로 구현 봄 부팅 예약 된 작업, 나는 미니 프로젝트 노트의 방법으로 정기적 인 작업을 수행합니다.

특정 작업을 실행 스레드, 1 시간 태스크의 단일 스레드 실행에 의해 수행 완료 5 분 멀티 스레드.

효율성을 향상보다 10 배의 효율을 향상시키기 위해 효율을 10 배 이상, 10 배 이상 향상시킬 수 있습니다.

중요한 것은 세 번 대답!

우리는 비슷한 기능을 달성 할 경우이 문서는, 원칙에 특정 통찰력하지 않습니다 만 1-5로 다음을 수행해야합니다.

이지도에 이유에 관해서는, 직접 코드에 연결되어 있지. 직접 코드를 조판 누락에 사서함을 유지하는 데 필요한 수 있습니다, 당신을 보냈습니다.

 

달성 1 타이밍 태스크

   방법을 @Scheduled 참고 위의 정규 구현의 증가가 필요합니다 (= 크론를 "01 00 17 * *?") // [초] [분] [H] [일] [월] [주] [년].

    작업의 실행에있어서 크론 리눅스 유사한 표현의 실행 시간은 매일 17:00 나타냅니다.

내부 (2) 타이밍 태스크 실행 멀티 나사부

    다중 스레드의 실행의 일부는 클래스를 다시 정의하고 클래스의 변수를 삽입해야합니다. 내가 여기에 클래스 DoBackupTask을 정의하고,이 클래스에서 여러 스레드로 작업을 수행합니다.

 

 

 (3) 일부를 달성하기 위하여 멀티 스레딩

멀티 스레드 실행 방법에서 주석 @Async ( "된 TaskExecutor") 증가, 매개 변수는 스레드 풀의 이름입니다

 

 

 (4) 쓰레드 풀 구현

풀 I 클래스에 메소드 asyncExecutor을 정의하는 클래스를 정의 스레드. 스레드, 스레드 풀 파라미터 이름의 수를 나타내는 ThreadPoolTaskExecutor 생성 설정 방법의 목적.

 

 (5) 위의 단계가 완료되었다, 그러나, 어떤 효과가 없습니다. 응용 프로그램 시작 클래스 증가 주석에 : 어쩌면 당신은 가장 중요한 단계를 놓친

멀티 스레드 활성화 @EnableScheduling
@EnableAsync 비동기 실행을

당신은 여전히이 주석을 @SpringBootApplication 찾기 위해, 특정 위치를 모르는 경우에 함께 넣어.

추천

출처www.cnblogs.com/siweihz/p/12127731.html