728x90
반응형
import schedule
import time
def helloword1(text):
print(text)
def helloword2(text):
print(text)
# 5초에 한번씩 함수 실행
test1 = schedule.every(5).seconds.do(helloword1, '5초마다 스케쥴러 실행중')
# 10분에 한번씩 함수 실행
test2 = schedule.every(1).minutes.do(helloword2, '1분마다 스케쥴러 실행중')
num = 0
while True:
schedule.run_pending()
time.sleep(1)
num = num + 1
if num > 1:
schedule.cancel_job(test2)
반응형
1. Schedule Libary
Schedule는 특정한 작업을 실행자가 원하는 일정에 맞게 프로그램을 실행시켜 줄 수 있는 스케줄러입니다.
리눅스 OS 환경의 crontab의 작업 스케줄러와 비슷한 역할을 하고 실행할 주기, 날짜, 시간, 요일 등 을 지정하여 원하는 시점에 작업을 실행하거나 원하는 주기로 반복 실행하도록 구현할 수 있습니다. 파이썬 스케줄러는 다른 작업 스케줄과 다르게 애플리케이션 레벨에서 스케줄러가 수행되는 점이 차이가 있습니다.
2. 파이썬 Schedule 설치 방법
Terminal에서 아래와 같이 pip 명령어를 사용하여 설치할 수 있습니다.
pip install schedule
3. Schedule 기본 구성 방식
1) schedule.default_scheduler = <schedule.Scheduler object>
- Scheduler의 기본 객체입니다.
2) schedule.jobs = []
- Scheduler에 등록된 Job 리스트를 보관하는 변수입니다.
3) schedule.every(interval=1)
- 설정한 intreval 주기를 이용하여 함수를 호출합니다.
- 스케줄은 schedule.every().(실행일자).function() 와 같은 형태로 정의할 수 있습니다
- (실행일자)에 사용 가능한 지정자는 second, seconds, minute, minutes, hour, hours, day, days, week, weeks 지정하여 사용합니다.
- function()에서 사용가능한 함수로는 tag(*tags), at(time_str), to(latest), do(job_func), run() 등이 있습니다.
4) schedule.run_pending()
- 실행 예약된 모든 작업을 실행합니다.
5) schedule.run_all(delay_seconds=0)
- 실행 예약에 관계없이 모든 작업을 일괄 실행합니다
- 모든 Job이 일괄 실행될 때 작업 간의 지연 시간을 delay_seconds를 이용하여 설정할 수 있습니다.
6) schedule.clear(tag=None)
- 예악된 Job을 Job 리스트에서 모두 삭제합니다.
- tag가 지정되어 있을 경우에는 지정된 태그의 Job만 삭제됩니다.
7) schedule.cancel_job(job)
- 예약된 작업의 스케줄을 취소합니다.
8) schedule.next_run()
- 다음 실행될 작업의 날짜를 반환합니다.
9) schedule.idle_seconds()
- Job이 수행될 다음 계획(next_Run)까지 남은 시간을 반환합니다
- 플러스는 남은 시간, 마이너스는 지난 시간을 의미합니다.
4. Schedule 실행 sample code
Schedule는 아래의 샘플 코드를 이용하여 실행할 수 있습니다.
import schedule
import time
def helloword():
print("스케줄러를 실햅합니다")
# 5초에 한번씩 함수 실행
schedule.every(5).seconds.do(함수)
# 10분에 한번씩 함수 실행
schedule.every(10).minutes.do(함수)
# 2시간에 한번씩 함수 실행
schedule.every(2).hour.do(함수)
# 3일에 한번씩 함수 실행
schedule.every(1).days.do(함수)
# 2주에 한번씩 함수 실행
schedule.every(2).weeks.do(함수)
# 매일 13시 30분에 함수 실행
schedule.every().day.at("13:30").do(함수)
# 매일 "11:11:11"에 함수 실행
schedule.every().day.at("12:00:11").do(함수)
while True:
schedule.run_pending()
time.sleep(1)
5. Schedule 실행
import schedule
import time
def helloword1(text):
print(text)
def helloword2(text):
print(text)
# 5초에 한번씩 함수 실행
test1 = schedule.every(5).seconds.do(helloword1, '5초마다 스케쥴러 실행중')
# 10분에 한번씩 함수 실행
test2 = schedule.every(1).minutes.do(helloword2, '1분마다 스케쥴러 실행중')
num = 0
while True:
schedule.run_pending()
time.sleep(1)
num = num + 1
if num > 1:
schedule.cancel_job(test2)
<출력 결과>
728x90
반응형
'Programming > 파이썬 (Python)' 카테고리의 다른 글
형태소 분석기 mecab 설치 (Mac os) (1) | 2023.05.03 |
---|---|
[Python] CSV 파일 파이썬으로 열기 (0) | 2023.01.17 |
[Mac] Crontab 오류 Solution (4) | 2023.01.06 |
[Python] Crontab을 이용한 자동 Python 실행 등록하기 (Mac) (0) | 2023.01.03 |
[Python Mysql 이모지 저장 Error solution]: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x99 "...' for column 'DSC' at row 1 (0) | 2023.01.01 |
댓글