기록
article thumbnail
728x90

SQL Server 에이전트를 이용해서 스케쥴러로 만들려고 했는 데 사용하고 있는 DB 호스팅 구독 버전에는 SQL Server 에이전트 사용 권한이 없어서 윈도 배치 파일과 작업 스케쥴러를 사용해서 저장된 To-Do 전체 데이터를 보기 쉬운 데이터로 만들기 위해 월간 집계 데이터를 저장하는 쿼리를 실행하는 웹 페이지를 실행하도록 설정하였습니다.

To-Do 전체 데이터

ToDo_ID Task1_YN Task2_YN Task3_YN Done_DATE
1 1 1 1 2022-12-21 00:00:00.000
3 1 1 1 2022-12-20 00:00:00.000
4 1 1 1 2022-12-19 00:00:00.000
11 1 1 0 2022-12-22 00:00:00.000
12 1 0 0 2022-12-23 00:00:00.000

 

Task 1-3 YN 필드 기본값은 0이며, 필드에 데이터 수정이 있으면 Done_DATE가 업데이트됩니다.

매월 1일 오전 12시에 Done_DATE 필드를 현재 날짜의 연도와 월을 비교하여 동일한 row의 Taskn_YN 3개 필드 데이터를 계산하여 아래와 같은 데이터를 집계합니다.

 

To-Do 월간 집계

ToDo_YYYY ToDo_MM ToDo_D_CNT ToDo_C_CNT ToDo_Y_CNT ToDo_N_CNT
2022 12 31 16 12 4
2023 1 31 6 5 1

ToDo_D_CNT : 해당 연도와 월의 총 일 수

ToDo_C_CNT : 해당 연도와 월의 총 기록  수

ToDo_Y_CNT : 해당 연도와 월의 총 Taskn_YN 3개 필드 모두 완료한  수

ToDo_N_CNT : 해당 연도와 월의 총 Taskn_YN 3개 필드 1개 이상 미완료한  수

 

배치 파일 작성

집계 쿼리를 실행하는 페이지를 파이어폭스 브라우저로 실행 후 60초 뒤에 파이어폭스 브라우저를 종료하는 명령어 스크립트를 작성합니다.

더보기

실행 중인 브라우저를 모두 종료시키기 때문에 자주 사용하지 않는 파이어폭스를 실행하고 종료하였습니다.

그리고 프로그램 시작하고 일정 시간 후 종료하는 것은 작업 스케줄러에도 설정하는 기능이 있기 때문에 배치 파일을 만들 필요가 없습니다. 저는 나중에 로그 기록이나 다른 것도 추가하고 싶어서 배치 파일로 작성하였습니다.

@echo off
start firefox http://localhost:8215/DBScheduler/StatusByMonth.aspx
timeout /T 60
taskkill /IM "firefox.exe" /T /F

사용한 명령어와 옵션

START             지정한 프로그램이나 명령을 실행할 별도의 창을 시작합니다.

 

TIMEOUT        지정한 프로그램이나 명령을 실행할 별도의 창을 시작합니다.

             /T        기다릴 시간(초)을 지정합니다. 유효한 범위는 -1에서 99999초까지입니다.

 

TASKKILL       실행 중인 프로세스나 응용 프로그램을 중단합니다.

            /IM      종료할 프로세스의 이미지 이름을 지정합니다.

            /T        지정된 프로세스와 그 프로세스로부터 시작된 모든 자식 프로세스를 종료합니다.

            /F        프로세스를 강제로 종료하도록 지정합니다.

 

작업 스케줄러 설정

윈도 작업 스케줄러 앱을 실행 한 후 [작업 만들기]를 클릭하여 새 작업을 생성합니다.

작업 스케줄러

 

트리거 탭에서 일정 정보를 설정합니다. 

동작 탭을 클릭하여 동작을 프로그램 시작을 선택 후에 만들어둔 배치 파일을 선택합니다.

더보기

작업 스케줄러에서 웹 브라우저 실행할려면 프로그램을 "C:\Program Files\Google\Chrome\Application\chrome.exe" 선택하고 인수 추가에 원하는 URL을 입력합니다.

 

조건 탭에서 컴퓨터의 전원, 유휴 상태, 네트워크 따라 작업 설정할 수 있으며 설정 탭에서는 작업 실패나 예약 시간이 지났을 때 등 작업의 동작에 영향을 주는 추가적인 작업을 설정을 상세하게 할 수 있습니다. 생성된 작업의 속성을 확인하면 기록 탭이 생기며 기록 탭에서는 작업에 대한 로그를 확인할 수 있습니다.

 

728x90