기업 급 SpringBoot 튜 토리 얼 (18) 정시 임무 (스케줄 링 Tasks)

이 글 은 스프링 을 통 해 스케줄 링 임 무 를 어떻게 하 는 지 소개 할 것 이다.
구축 공정
Springboot 프로젝트 를 만 들 고 프로그램 입구 에 @ Enable Scheduling 을 추가 하여 스케줄 링 작업 을 시작 합 니 다.
1
2
3
4
5
6
7
8 @SpringBootApplication @EnableScheduling public class SpringbootSchedulingTasksApplication { public static void main(String[] args) { SpringApplication.run(SpringbootSchedulingTasksApplication. class , args); } }
  
정시 작업 생 성
5s 가 지나 면 콘 솔 에서 현재 시간 을 인쇄 하 는 정시 작업 을 만 듭 니 다.
1
2
3
4
5
6
7
8
9
10
11
12 @Component public class ScheduledTasks { private static final Logger log = LoggerFactory.getLogger(ScheduledTasks. class ); private static final SimpleDateFormat dateFormat = new SimpleDateFormat( "HH:mm:ss" ); @Scheduled (fixedRate = 5000 ) public void reportCurrentTime() { log.info( "The time is now {}" , dateFormat.format( new Date())); } }
  
방법 에 @ Scheduled 주 해 를 추가 하여 이 방법 이 스케줄 링 작업 임 을 나타 낸다.
  • @ Scheduled (fixed Rate = 5000): 지난번 실행 시작 시점 이후 5 초 만 에 실행
  • @ Scheduled (fixedDelay = 5000): 지난번 실행 완료 시점 이후 5 초 만 에 실행
  • @ Scheduled (initial Delay = 1000, fixed Rate = 5000): 첫 번 째 지연 1 초 후 실행 하고, 이후 fixed Rate 의 규칙 에 따라 5 초 마다 실행
  • @ Scheduled (cron = "/ 5"): cron 표현 식 을 통 해 규칙 을 정의 합 니 다. cro 표현 식 이 무엇 인지 자체 검색엔진 입 니 다.
  • 테스트
    springboot 프로젝트 를 시작 하면 콘 솔 이 5s 도 지나 지 않 아 현재 시간 을 출력 합 니 다.
    1
    2
    3
    4 2017 - 04 - 29 17 : 39 : 37.672 INFO 677 — [pool- 1 -thread- 1 ] com.forezp.task.ScheduledTasks : The time is now 17 : 39 : 37 2017 - 04 - 29 17 : 39 : 42.671 INFO 677 — [pool- 1 -thread- 1 ] com.forezp.task.ScheduledTasks : The time is now 17 : 39 : 42 2017 - 04 - 29 17 : 39 : 47.672 INFO 677 — [pool- 1 -thread- 1 ] com.forezp.task.ScheduledTasks : The time is now 17 : 39 : 47 2017 - 04 - 29 17 : 39 : 52.675 INFO 677 — [pool- 1 -thread- 1 ] com.forezp.task.ScheduledTasks : The time is now 17 : 39 : 52
    구조 코드 는 다음 과 같다.
    자료 와 원본 주소
    Spring Cloud 대형 기업 분포 식 마이크로 서비스 클 라 우 드 구조 소스 코드
    다음으로 전송:https://juejin.im/post/5c80e06d51882547113db721

    좋은 웹페이지 즐겨찾기