파이썬 스케쥴(일정) 라이브러리 Schedule Programming/Python2021. 8. 4. 09:34
어떤 프로그램을 사용하다가 보면
특정 시간대에 실행하는 경우가 많이 있습니다.
windows의 스케쥴링을 이용한다거나 cron을 이용해서 할수도 있지만,
파이썬에서는 간단한 스케쥴 라이브러리가 있습니다.
우선 아래와 같이 설치를 하고
pip install schedule
[참고자료]
GitHub - dbader/schedule: Python job scheduling for humans.
GitHub - dbader/schedule: Python job scheduling for humans.
Python job scheduling for humans. Contribute to dbader/schedule development by creating an account on GitHub.
github.com
라이브러리에 설명된 몇 가지 예시
import schedule
import time
import datetime
def job(message='stuff'):
print(datetime.datetime.now())
print("I'm working...")
schedule.every(3).seconds.do(job) # 3초 마다 실행
# schedule.every(10).minutes.do(job) # 10분 마다 실행
# schedule.every().hour.do(job) # 매시간마다 실행
# schedule.every().day.at("10:30").do(job) # 매일 10:30에 실행
# schedule.every(5).to(10).minutes.do(job) # 05:10분에 실행
# schedule.every().monday.do(job) # 월요일마다 실행
# schedule.every().wednesday.at("13:15").do(job) # 수요일마다 13:15에 실행
# schedule.every().minute.at(":17").do(job) # 매시간 17분마다 실행
# schedule.every().hour.do(job, message='things') # 매시간마다 변수와 함께 실행(default는 'stuff')
while True:
schedule.run_pending()
time.sleep(1)
※ 3초 마다 실행 확인
이외에도 다양한 예제 파일이 아래 사이트에 있으니 필요한 옵션들을 골라서 사용하면 되구요.
그중 몇 가지 대표적인 기능들을 아래에 적어놨으니
다양하게 조합하셔서 사용하시면 좋을 것 같네요.
schedule/examples.rst at master · dbader/schedule · GitHub
GitHub - dbader/schedule: Python job scheduling for humans.
Python job scheduling for humans. Contribute to dbader/schedule development by creating an account on GitHub.
github.com
Run a job every x minute
import schedule
import time
def job():
print("I'm working...")
# Run job every 3 second/minute/hour/day/week,
# Starting 3 second/minute/hour/day/week from now
schedule.every(3).seconds.do(job)
schedule.every(3).minutes.do(job)
schedule.every(3).hours.do(job)
schedule.every(3).days.do(job)
schedule.every(3).weeks.do(job)
# Run job every minute at the 23rd second
schedule.every().minute.at(":23").do(job)
# Run job every hour at the 42rd minute
schedule.every().hour.at(":42").do(job)
# Run jobs every 5th hour, 20 minutes and 30 seconds in.
# If current time is 02:00, first execution is at 06:20:30
schedule.every(5).hours.at("20:30").do(job)
# Run job every day at specific HH:MM and next HH:MM:SS
schedule.every().day.at("10:30").do(job)
schedule.every().day.at("10:30:42").do(job)
# Run job on a specific day of the week
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
while True:
schedule.run_pending()
time.sleep(1)
Cancel a job
To remove a job from the scheduler, use the schedule.cancel_job(job) method
import schedule
def some_task():
print('Hello world')
job = schedule.every().day.at('22:30').do(some_task)
schedule.cancel_job(job)
감사합니다.
'Programming > Python' 카테고리의 다른 글
BeautifulSoup을 이용한 태그의 특정 텍스트, 속성 값 불러오기 (0) | 2021.08.05 |
---|---|
파이썬 requests로 크롤링 안될 때 해볼 수 있는 방법 (0) | 2021.08.04 |
(1292): Truncated incorrect DOUBLE value (0) | 2021.06.28 |
selenium, pyautogui 이용시 한글 입력 (0) | 2021.06.11 |
Range 함수 역순 (0) | 2021.06.10 |