728x90
Scheduler
설정한 시간마다 특정한 동작을하는 스케쥴러를 활용해보았다.
현재 프로젝트중인 구인게시판이다.
카풀, 동호회, 같이타요 등 스키장과 관련된 구인을 할 수 있는 게시판인데,
글작성 중 제공일자를 선택할 수 있다.
제공일자를 경과하거나 마감버튼을 따로 누르면 마감글포함 버튼을 누르지 않으면 표시되지않고,
파란색으로 따로 표시되고 연락처칸이 블라인드처리 된다.
마감이 됐는지 안됐는지 따로 컬럼을 만들어서, 구분자를 만들어 분류를 해줬다.
일일이 게시글을 확인해 마감처리를 해줄수는 없으니
스케쥴러를 사용해서 매일오전 0시에 제공일자를 경과한 게시글은 자동적으로 마감처리를 해줘야겠다.
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import cs.projects.whiterecord.service.SocialService;
@SpringBootApplication
@EnableScheduling
public class SchedulerApplication {
@Autowired
private SocialService socialService;
@Scheduled(cron = "0 0 0 * * *")
public void printDate () throws Exception{
System.out.println("스케쥴러 작동");
socialService.socialSchedul();
}
}
@EncalbeScheduling 과 @Scheduled 어노테이션을 이용하면 간단하다.
"0 0 * * * *" = the top of every hour of every day.
"*/10 * * * * *" = 매 10초마다 실행한다.
"0 0 8-10 * * *" = 매일 8, 9, 10시에 실행한다
"0 0 6,19 * * *" = 매일 오전 6시, 오후 7시에 실행한다.
"0 0/30 8-10 * * *" = 8:00, 8:30, 9:00, 9:30, 10:00 and 10:30 every day.
"0 0 9-17 * * MON-FRI" = 오전 9시부터 오후 5시까지 주중(월~금)에 실행한다.
"0 0 0 25 12 ?" = every Christmas Day at midnight
스케쥴러의 시간설정은 이런식으로
초 분 시간 일 월 요일 단위로 * * * * * * , 6자리를 이용하여 표현해주면 되겠다.
<update id="socialSchedul">
<![CDATA[update social set complete = 'Y' where offerdate < TO_DATE(SYSDATE, 'YY-MM-DD') OR ENDDATE < TO_DATE(SYSDATE, 'YY-MM-DD')]]>
</update>
설명할게 따로 없는 간단한 update문... 날짜비교를 이용해서 처리해주었다.
728x90
'SPRING BOOT > WhiteRecord' 카테고리의 다른 글
HttpURLConnection을 이용한 API 데이터 받아오기 (0) | 2022.02.07 |
---|---|
[스프링부트] 에디터 이미지업로드 시 임시폴더로 분리하기 (0) | 2022.02.05 |
CK에디터로 올린 이미지에서 썸네일 뽑아내기 ( 정규식 ) (1) | 2022.01.28 |
지도 API 좌표값 소숫점 자르기 ( double형 소수값 자릿수 자르기 ) (3) | 2022.01.28 |
WhiteRecord 프로젝트 시작 (0) | 2022.01.10 |