[SPRING] 봄 부팅 응용 프로그램에서 작업을 예약하는 가장 좋은 방법은 무엇입니까?
SPRING봄 부팅 응용 프로그램에서 작업을 예약하는 가장 좋은 방법은 무엇입니까?
현재 Spring-Boot를 기반으로하는 응용 프로그램을 개발 중입니다.
@Scheduled와 같은 주석이 작업을 예약 할 수 있다는 것을 알고 있습니다. 내 응용 프로그램의 사용자가 다른 시간에 메일을 보내고 한 번만 보내려고하기 때문에.
나는 이미 포스트 스케줄링 작업을 읽었다 - 한 번만 실행한다. 그러나 Spring 기반의 응용 프로그램에서는 항상 "새로운"localExecutor입니다.
그런 식으로, 사용자가 이메일을 보내면, 나는 그의 작업을 위해 localExecutor를 "새롭게"해야만한다.
그래서 더 좋은 방법이 있습니까?
해결법
-
==============================
1.quartz-scheduler를 사용하여 다른 시간에 메일을 보내고 한 번만 보내야합니다 .- 코드에 비즈니스 로직으로 넣으십시오. 봄 부츠 - 석영 통합을 참조하십시오. https://github.com/davidkiss/spring-boot-quartz-demo
quartz-scheduler를 사용하여 다른 시간에 메일을 보내고 한 번만 보내야합니다 .- 코드에 비즈니스 로직으로 넣으십시오. 봄 부츠 - 석영 통합을 참조하십시오. https://github.com/davidkiss/spring-boot-quartz-demo
-
==============================
2.Spring에서 작업을 스케줄하는 가장 간단한 방법은 @Scheduled로 주석 처리 된 메소드를 봄 관리 빈에 작성하는 것이다. 또한 모든 @Configuration 클래스에서 @EnableScheduling이 필요했습니다.
Spring에서 작업을 스케줄하는 가장 간단한 방법은 @Scheduled로 주석 처리 된 메소드를 봄 관리 빈에 작성하는 것이다. 또한 모든 @Configuration 클래스에서 @EnableScheduling이 필요했습니다.
봄 튜토리얼
-
==============================
3.@Scheduled 안에 crontab을 사용할 수 있습니다.
@Scheduled 안에 crontab을 사용할 수 있습니다.
private AtomicInteger counter = new AtomicInteger(0); @Scheduled(cron = "*/2 * * * * *") public void cronJob() { int jobId = counter.incrementAndGet(); System.out.println("Job " + new Date() + ", jobId: " + jobId); }
from https://stackoverflow.com/questions/35064563/what-is-best-way-to-schedule-task-in-spring-boot-application by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 동적 웹 모듈 3.0 - 3.1 (0) | 2019.01.09 |
---|---|
[SPRING] 스프링 데이터는 @query 쿼리를 동적으로 작성합니다. (0) | 2019.01.09 |
[SPRING] SPA 프론트 엔드 용 스프링 부트 구성 (0) | 2019.01.09 |
[SPRING] Spring의 application.properties에서 @Value 속성을 다시로드하는 방법은 무엇입니까? [복제] (0) | 2019.01.09 |
[SPRING] ViewScoped Bean이 NotSerializableException을 발생시킵니다. (0) | 2019.01.09 |