동서발전 태양광 발전량 예측 AI 경진대회

Windows 시스템에서 스케줄링을 통한 코드 자동 실행

2021.06.11 00:25 7,197 Views

이번에는 윈도우 시스템에서 코드 자동실행을 설정해 보겠습니다.

윈도우 자체 서비스인 스케줄러를 이용해도 되지만 저는 cron job형태의 설정이 더 익숙하기도 하고

nnCron 자체가 상당히 확장성이 좋아서 사용합니다.


오늘은 nnCron lite 기준으로 설명을 할거지만 조금만 찾아보신다면

nnCron을 이용해서 프로그램의 자동실행, 컴퓨터의 전원 관리 자동화 등등 매우 많은 설정이 가능하고

설정에 따라 컴퓨터를 켜서 코드를 실행하고 완료 후 전원 종료까지 자동화도 가능합니다.

(라이트와 일반 버전의 차이는 기능도 있지만 GUI유무도 있습니다.

UI도 없고 기능도 적은 라이트가 당연히 더 가볍습니다.)


전글인 리눅스에서의 Cron 서비스의 글을 참고하시면 이해가 쉬울 듯 합니다.

https://dacon.io/competitions/official/235720/talkboard/403463?page=1&dtype=recent


nnCron에 대한 Document는 아래에서 참고 부탁드립니다.

http://www.nncron.ru/index.shtml

https://github.com/nnCron/nnCron


일단 nncron.ru에 접속하셔서 상단의 다운로드 ->nncronlt117.exe 를 받아주시고 설치해 주세요.

마지막 업데이트가 2008년 12월 이라는 악랄한 유지 상태를 보이지만 기능에 전혀 문제가 없습니다.


설치중에 경로 설정이 있는데 저는 아래에 설치했습니다

C:\Program Files (x86)\cron


해당 경로로 가보면 중요한 내용은 아래 네가지 입니다.

log(폴더)

cron.tab

startcron(bat file)

stopcron(bat file)


그 중 스케줄을 등록하거나 수정할 때 쓰는 파일은 cron.tab 입니다

메모장등으로 열면 아래와 같습니다.


#CRONTAB FILE 
# Classic crontab format:
# Minutes Hours Days Months WeekDays Command

#*/15 8-16 * * 1-5 checkmail.exe


명령을 구성하는 순서, 요소가 리눅스와 동일합니다.

"(분 시간 일 월 요일) 명령어" 형태로 구성하시면 됩니다.


예를들어

*/15 23 * * * path_to_env/bin/python path_to_script/main.py


매일 저녁 11시가 되면 15분 마다 path_to_env/bin/ 에 있는 파이썬으로 path_to_script/ 에 있는 main.py를 실행해라 라는 뜻입니다.

저녁 11:00 11:15 11:30 11:45 에 실행될겁니다. 12에는 실행되는지 안되는지 가물가물하네요.


시간셋팅 + 명령어를 넣어주신뒤 저장하시고 startcron 배치파일 실행해주시면 끝입니다.

설정한 스케줄에 따라 실행될때마다 log폴더에서 언제 실행됐는지 확인하실 수 있습니다.


다만 cron.tab설정의 명령어의 실행여부 뿐만 아니라 python 스크립트의 출력 또는 에러를 확인하시고 싶으시다면

리눅스 cron 글에서 동일하게 명령어 뒤에 로그 파일에 stdout과 stderr을 기록하도록 설정하는 것도 가능합니다.

(위에 리눅스 글 링크 확인)


매일 코드 돌리시느라 고생이실텐데 이렇게 설정해놓고

코드 중간중간 중요 부분만 시각화해서 png파일로 출력, 결과물 csv 출력을 해놓으면

제출 시간에 들어와서 png파일로 데이터가 잘 들어왔는지, csv의 출력은 정상적으로 나왔는지만 확인하시고

제출하시면 편하게 참여하실 수 있습니다.


감사합니다

로그인이 필요합니다
0 / 1000
당쇠
2021.06.12 08:51

👍🏻