[python] 특정 날짜와 시간을 기준으로 한 기간 내의 특정 시간 간격 내에 대한 작업 예약하기
일정한 기간 동안에 정기적으로 작업을 예약하거나 특정 시간 간격마다 작업을 예약하고 싶을 때가 많습니다. 예를 들어, 특정 날짜부터 2주마다 월요일 오전 10시에 이메일을 보내는 작업을 예약하고 싶을 수 있습니다. 파이썬의 datetime 모듈과 schedule 라이브러리를 사용하여 이러한 작업을 예약할 수 있습니다.
1. datetime 모듈을 사용하여 시작 날짜 계산
우선, 시작 날짜와 시간을 기준으로하여 작업을 예약할 기간의 시작 날짜를 계산해야 합니다. 다음 코드를 사용하여 시작 날짜를 계산할 수 있습니다.
from datetime import datetime, timedelta
start_date = datetime(2022, 9, 1, 10, 0) # 예시: 2022년 9월 1일 오전 10시
2. schedule 라이브러리를 사용하여 작업 예약
이제, schedule 라이브러리를 사용하여 특정 시간 간격마다 작업을 예약할 수 있습니다.
import schedule
import time
def send_email():
# 이메일을 보내는 작업 수행
pass
# 2주마다 월요일 오전 10시에 작업 예약
schedule.every(2).weeks.at('10:00').monday.do(send_email)
# 작업 예약 실행
while True:
schedule.run_pending()
time.sleep(1)
위 코드에서, schedule.every(2).weeks.at('10:00').monday.do(send_email)
은 2주마다 월요일 오전 10시에 send_email
함수를 실행하도록 작업을 예약합니다.
3. 작업 예약 확인
작업이 정상적으로 예약되었는지 확인하기 위해, 작업 예약 코드 이후에 작업이 예약되었는지 확인하는 코드를 추가할 수 있습니다.
print(schedule.jobs)
위 코드는 현재 예약된 작업 목록을 출력합니다.
결론
파이썬의 datetime 모듈과 schedule 라이브러리를 사용하여 특정 날짜와 시간을 기준으로 한 기간 내의 특정 시간 간격 내에 대한 작업을 예약하는 방법에 대해 알아보았습니다. 이러한 기술을 사용하여 작업을 자동화하고 효율적으로 관리할 수 있습니다.