>Java >java지도 시간 >SpringBoot 예약 작업

SpringBoot 예약 작업

(*-*)浩
(*-*)浩앞으로
2019-10-16 16:39:232190검색

실제 개발 프로젝트를 진행하다 보면 매시간 새로 등록된 사용자 수를 세는 것, 매일 오전 1시에 서버 캐시를 정리하는 것, 사용자 수를 세는 것 등을 하기 위해 예약된 작업이 필요할 때가 많습니다. 매주 금요일 멤버십을 구매한 분들을 기다려주세요.

SpringBoot 예약 작업

SpringBoot는 예약된 작업 프로그램을 작성하는 데 매우 편리한 주석 방법을 제공합니다. 구성 파일과 종속성을 추가할 필요가 없습니다. 다음 주석을 추가하세요. : 예약된 작업에 대한 지원 활성화

주석 방법 - 단일 스레드

Create SchedulerTask1 클래스 저장소 및 작업 패키지:

@SpringBootApplication
@EnableScheduling
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

Create SchedulerTask2 클래스 저장소 및 작업 패키지:

@Component
public class SchedulerTask1 {

    @Scheduled(cron = "*/6 * * * * ?")
    private void process(){
        System.out.println("SchedulerTask1 : " + LocalDateTime.now().toLocalTime() + "\r\n线程 : " + Thread.currentThread().getName());
    }
}

@Scheduled 매개 변수는 두 가지 타이밍 설정을 허용할 수 있습니다. 하나는 다음과 같습니다. 일반적으로 사용되는 cron="*/6 * * * * ?"이고 다른 하나는 fixRate = 3000입니다. 둘 다 X초마다 콘텐츠를 인쇄한다는 의미입니다.

fixedRate 설명

@Scheduled(fixedRate = 3000) : 마지막 실행 시점부터 3초 후에 실행

@Scheduled(fixedDelay = 3000) : 마지막 실행 완료 시점부터 3초 후에 실행

@Scheduled(initialDelay) =1000,fixedRate=6000): 첫 번째 1초 지연 후 실행된 다음

fixedRate

Cron 표현식 매개변수의 규칙에 따라 6초마다 실행됩니다. 각각 다음을 나타냅니다.

초(0~ 59) 예를 들어 0/5는 5초마다

분(0~59)

시간(0~23)

일(0~31)을 의미하며 특정일에

개월( 0~11)

요일 (1~7 또는 SUN/MON/TUE/WED/THU/FRI/SAT 입력 가능)

프로젝트를 시작하면 실행 결과는 다음과 같습니다

@Component
public class SchedulerTask2 {
    @Scheduled(fixedRate  = 3000)
    private void process(){
        System.out.println("SchedulerTask2 : " + LocalDateTime.now().toLocalTime() + "\r\n线程 : " + Thread.currentThread().getName());
    }
}
위의 두 예약된 작업이 동일한 스레드(scheduling-1)를 사용하여 동시에 실행될 때 작업의 실행 시간이 이전 작업의 실행 시간에 영향을 받는 것을 볼 수 있습니다.

주석 방법 - 멀티 스레딩

새 MultithreadScheduleTask 클래스를 생성하고 작업 패키지에 저장합니다:

SchedulerTask2 : 21:36:47.795008800
线程 : scheduling-1
SchedulerTask1 : 21:36:48.014888600
线程 : scheduling-1
SchedulerTask2 : 21:36:50.792887400
线程 : scheduling-1
SchedulerTask2 : 21:36:53.792697900
线程 : scheduling-1
SchedulerTask1 : 21:36:54.002684700
线程 : scheduling-1
SchedulerTask2 : 21:36:56.792517700
线程 : scheduling-1
SchedulerTask2 : 21:36:59.792606400
线程 : scheduling-1
SchedulerTask1 : 21:37:00.002598400
线程 : scheduling-1
SchedulerTask2 : 21:37:02.792423300
线程 : scheduling-1
SchedulerTask2 : 21:37:05.802238
线程 : scheduling-1
SchedulerTask1 : 21:37:06.002225200
线程 : scheduling-1

@EnableAsync: 멀티 스레딩 켜기

프로젝트를 시작하면 실행 결과는 다음과 같습니다. :

아아아아

위 내용은 SpringBoot 예약 작업의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제