Python 정시 작업 APScheduler 설치 및 사용 분석
3169 단어 Python정시과업APScheduler
APScheduler 는 Python 의 정시 작업 프레임 워 크 로 사용 하기에 매우 편리 하 다.날짜,고정 시간 간격,crontab 형식 을 기반 으로 하 는 작업 을 제공 하고 작업 을 지속 적 으로 수행 하 며 daemon 방식 으로 응용 을 실행 할 수 있 습 니 다.
2.APScheduler 네 가지 구성 요소
APScheduler 네 가지 구성 요 소 는 트리거(trigger),작업 저장 소(job store),실행 기(executor),스케줄 러(scheduler)이다.
트리거(trigger)
스케줄 링 논 리 를 포함 하여 모든 작업 은 다음 작업 이 실 행 될 지 결정 하 는 데 사용 되 는 트리거 가 있 습 니 다.그들 스스로 초기 설정 을 제외 하고 트리거 는 완전히 무상 태 이다
APScheduler 는 세 가지 내 장 된 trigger 가 있 습 니 다.
예 약 된 작업 을 저장 합 니 다.기본 작업 저장 소 는 작업 을 메모리 에 간단하게 저장 하고 다른 작업 저장 소 는 작업 을 데이터베이스 에 저장 합 니 다.작업 의 데 이 터 는 영구적 인 작업 저장 소 에 저장 할 때 직렬 화 되 고 불 러 올 때 반 직렬 화 된다 고 합 니 다.스케줄 러 는 같은 작업 저장 소 를 공유 할 수 없습니다.
APScheduler 는 기본적으로 Memory JobStore 를 사용 하고 DB 저장 소 를 사용 하 는 방안 을 수정 할 수 있 습 니 다.
실행 기(executor)
작업 을 처리 하 는 실행 은 보통 작업 에서 제 정 된 호출 가능 한 대상 을 하나의 스 레 드 나 시내 로 제출 하여 진행 합 니 다.작업 이 완료 되면 실행 기 는 스케줄 러 에 게 알려 줍 니 다.
가장 많이 사용 되 는 executor 는 두 가지 가 있 습 니 다.
보통 응용 프로그램 에 스케줄 러 가 하나 밖 에 없 는데 응용 개발 자 들 은 작업 저장 소,스케줄 러,트리거 를 직접 처리 하지 않 는 반면 스케줄 러 는 이러한 처리 에 적합 한 인 터 페 이 스 를 제공 합 니 다.작업 저장 소 와 실행 기 를 설정 하면 스케줄 러 에서 작업 을 추가,수정,제거 할 수 있 습 니 다.
2.설치
$ pip install apscheduler
다음 에 우 리 는 간단 한 몇 가지 예 를 살 펴 보 자.
===============interval: ===============
from apscheduler.schedulers.blocking import BlockingScheduler
from datetime import datetime
def job():
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
# BlockingScheduler
sched = BlockingScheduler()
sched.add_job(job, 'interval', seconds=5)
sched.start()
===============cron: ===============
import time
from apscheduler.schedulers.blocking import BlockingScheduler
def job(text):
t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print('{} --- {}'.format(text, t))
scheduler = BlockingScheduler()
# 22 , 1 job
scheduler.add_job(job, 'cron', hour=17, minute='*/1', args=['job1'])
# 22 23 25 , job
scheduler.add_job(job, 'cron', hour='22-23', minute='25', args=['job2'])
scheduler.start()
장식 기 scheduledjob()추가 방법
import time
from apscheduler.schedulers.blocking import BlockingScheduler
scheduler = BlockingScheduler()
@scheduler.scheduled_job('interval', seconds=5)
def job1():
t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print('job1 --- {}'.format(t))
@scheduler.scheduled_job('cron', second='*/7')
def job2():
t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print('job2 --- {}'.format(t))
scheduler.start()
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.