개발/PYTHON

파이썬 스케줄 기능으로 예약 실행 가능하게 하기 예제 Python - schedule

Aireee 2021. 4. 25. 19:09
300x250
반응형

파이썬에서 특정시간마다 내가 원한 일을 자동으로 수행하게 하려면 어떻게 해야 하는지 검색해 보았다.

이걸 "스케줄"이라고 하나 보다.

스케줄 모듈은 "schedule" 에 있다. 이 모듈이 설치되어 있지 않다면 터미널창에서

pip install schedule

이렇게 치기만 하면 다운로드 받을 수 있다.

1  import schedule
2
3  def job():
4     print("yaho")
5
6  def every():
7     print("every")
8
9  schedule.every(10).seconds.do(job)
10 schedule.every().day.at("12:19").do(every)
11
12 while True:
13    schedule.run_pending()

1 : schedule 을 사용하기 위해 준비시킨다.

3 ~ 7 : Job 과 every 함수이다. job 함수가 실행되면 "yaho" 가 출력되고, every 함수가 실행되면 every 가 출력된다.

9 : 매 10초마다 job 을 실행하라는 명령어

10 : 매일 12:19 분에 every 함수를 실행하라는 명령어

12~13 : 명령을 수행 후 프로그램이 종료되지 않도록 하는 명령어. (자세한건 아직 모른다, 이걸 이용해 프로젝트나 응용예제를 만들어본적이 없기 때문이다)

Schedule 을 사용하면 무엇을 만들 수 있을까?

1. 일정시간에 한번씩 무언가 검사하는 프로그램... 이를테면, 업데이트 확인이라던지, 바이러스 검사라던지.... 또는 신규게시글 확인이라던지, 일정시간마다 자동저장, 자동백업도 될듯 하다.

2. 특정시간에만 상품을 주는 게임이라던지, 게임 속에서 몇분에 한번씩 자원을 수집한다던지 그런것들이 가능 할 수 있을 것 같다. 즉 웹게임 만드는데에도 이용가능할 듯하다.

3. 또한, 사용자가 많은 서비스에서는 사용자가 db에 직접 접속하기 보다는 내부에서 일정시간마다 한번씩 db를 읽어와서 고객이 사용할 수 있는 페이지를 생성하게끔 설정한다면 사용자가 방문할 때마다 db에 접속해 데이터를 불러오는 자원을 줄일 수 있을 것이라고도 생각한다. 단계가 하나 늘어나는 것이니 개발단계에서는 조금 불편한 과정이 추가되겠지만, 데이터 때문에 속도문제를 고려하는 경우, 즉 사용자가 많거나, 데이터가 방대한 경우 이와 같은 스케줄을 이용할 수 있을듯 하다

반응형