개발공부


스프링 스케쥴러 https://spring.io/guides/gs/scheduling-tasks/


CRON 크론 표현식


 초    |   분   |   시   |   일   |   월   |  요일  |   연도

0~59 | 0~59 | 0~23 | 1~31 | 1~12  |   0~6  | 생략가능



요일 : 0 (일요일) ~ 6( 토요일)

? : 설정 값 없을 때 - 일과 요일 에서만 사용가능

* : 모든조건

시작시간/단위 : 시작시간부터 해당 단위 때

시작범위-끝범위 : 시작범위 부터 끝범위까지

L : 마지막 - 일, 요일 에서만 사용가능

W : 가장 가까운 평일 찾는다 - 일 에서만 사용가능

ex) 10W

-10일이 평일 일 때 : 10일에 실행

-10일이 토요일 일 때 : 가장 가까운 평일인 금요일(9일)에 참

-10일이 일요일 일 때 : 가장 가까운 평일인 월요일(11일)에 참

# : 몇주 째인지 찾는다 - 요일 에서만 사용가능

ex) 3#2 : 수요일#2째주 에 참


예제


1) 매월 10일 오전 11시

0  1  1  10  *  *


2) 매일 오후 2시 5분 0초

0  5  14  *  *  *


3) 10분마다 도는 스케줄러 : 10분 0초, 20분 0초...

0  0/10  *  *  *


4) 조건에서만 실행되는 스케줄러 : 10분 0초, 11분 0초 ~ 15분 0초까지 실행

0  10-15  *  *  *



스프링 스케줄러 사용하기

servlet-context.xml 환경설정


1. beans태그에 task 속성 추가


1
2
 xmlns:task="http://www.springframework.org/schema/task
 
cs


2. xsi:schemaLocation 내에 코드 추가


1
2
http://www.springframework.org/schema/task 
http://www.springframework.org/schema/task/spring-task.xsd
cs



3. beans 태그의 자식태그 추가


1
2
3
<context:component-scan base-package="com.ksmart.harulook.scheduler" />
<task:scheduler id="jobScheduler" pool-size="10" />
<task:annotation-driven scheduler="jobScheduler" />
cs


스케줄러 job생성


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package com.ksmart.harulook.scheduler;
 
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
 
import com.ksmart.harulook.hof.service.HofDao;
 
 
@Component
public class Scheduler {
    Logger log = Logger.getLogger(this.getClass());
 
    @Autowired
    private HofDao hofdao;
    
    /*매월 1일 0시 30분 명예의전당 입력*/
    @Scheduled(cron="0 30 0 1 * *")
    public void HofScheduler() {
        try{
            hofdao.insertHof();
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    
    
}
cs







참고사이트 http://hellogk.tistory.com/106



BootStrap Theme "BAND"

https://www.w3schools.com/bootstrap/bootstrap_theme_band.asp

Spring 에서 깃허브 프로젝트 가져오기


Import - Git - Projects From Git - Clone URI 하고 깃허브의 주소와 아이디 비밀번호 입력한다



Github에 Commit할때

마우스 우클릭 - Team - Commit

저장소에 저장되지 않은 변경된 내역 중에 커밋할 내용을 드래그한 후

커밋메세지를 작성한 후 커밋한다.

커밋과 동시에 PUSH해서 깃허브에 올리고 싶다면 Commit and Push를 클릭한다

Push할때 브랜치를 생성할 수 있다.





88DAY / MySQL 랭크함수

2017. 8. 8. 09:00

Oracle과 달리 MySQL에서는 랭크함수가 없어서 구현해줘야한다.


같은 점수면 동점처리하고

원래는 1등 1명, 2등 2명이면, 다음 등수는 4등이 되어야하지만

우리 프로젝트에서 처리하기엔 더 불편할 것같아서 다음 등수는 3등이 되게하였다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    SELECT 
        sns_board_no, 
        CASE
        WHEN @prev = liker then @Rank 
        WHEN @prev := liker then @Rank := @Rank +1 
        END AS rank, 
        liker
    FROM 
        (
        SELECT sns_board_no ,count(sns_like_no) as liker
        FROM sns_like
        WHERE MONTH(sns_like_date) = (MONTH(NOW())-1)
        GROUP BY sns_board_no 
        ORDER BY count(sns_like_no) DESC
        )sub1
    CROSS JOIN (select @Rank := 0 ,@prev :=  NULL) sub2
    ;
cs



MySQL 사용자 변수 사용


1)SET을 사용하여 변수설정


1
SET @exam = 1;
cs

2)@var := expr

1
SELECT @exam := 1;
cs




+ Recent posts