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을 입력합니다.
조건 탭에서 컴퓨터의 전원, 유휴 상태, 네트워크 따라 작업 설정할 수 있으며 설정 탭에서는 작업 실패나 예약 시간이 지났을 때 등 작업의 동작에 영향을 주는 추가적인 작업을 설정을 상세하게 할 수 있습니다. 생성된 작업의 속성을 확인하면 기록 탭이 생기며 기록 탭에서는 작업에 대한 로그를 확인할 수 있습니다.
'개발 > Windows' 카테고리의 다른 글
[Windows Forms] NAudio NuGet 패키지를 사용하여 동영상 파일을 오디오 파일로 변환하기 (0) | 2023.08.04 |
---|---|
[Windows Forms] ffmpeg를 사용하여 동영상 파일을 오디오 파일로 변환하기 (0) | 2023.08.04 |
[Windows 11/SSMS] 키보드 전자/반자 자동 전환 (1) | 2023.05.24 |
Notion에서 윈도우 터치 키보드를 이용하여 이모지 쉽게 사용하기 (0) | 2023.05.04 |
폴더에서 파일의 이름에 확장자까지 표시하는 옵션 설정하기 (0) | 2023.03.18 |