Python의 Cron과 같은 일정

Atika Islam 2024년2월15일
  1. Python의 cronscheduler 모듈
  2. schedule 모듈을 사용하여 작업 예약
Python의 Cron과 같은 일정

이 튜토리얼에서는 Linux의 cron 작업과 유사한 작업 스케줄링에 대해 설명합니다. 먼저 schedule 모듈을 살펴보고 진행 중인 일정에서 작업을 예약합니다.

Python의 cronscheduler 모듈

Python은 작업을 자동으로 예약할 수 있는 여러 패키지를 제공합니다. 이러한 패키지에는 일정시간이 포함됩니다.

cron은 작업을 예약하고 자동화하는 데 사용됩니다. 예를 들어 특정 시간 간격이 지나면 특정 작업이 자동으로 실행되기 시작합니다.

수동 개입 없이 정기적으로 많은 작업을 수행해야 하는 경우가 많습니다. 태스크 스케줄러를 사용하여 이를 달성할 수 있습니다.

예약은 종종 데이터베이스에 저장된 데이터를 관리하는 데 도움이 됩니다. 또한 필요에 따라 주기적으로 데이터를 가져올 수 있습니다.

Python의 schedule 모듈은 구성에 따라 실행할 작업을 예약하는 정교한 일정 모듈입니다.

cron은 시간 기반 스케줄러입니다. 주기적으로 수행해야 하는 작업을 예약하는 데 도움이 됩니다. Linux cron 유틸리티의 일부인 crontab 파일에는 예약된 작업 목록이 포함되어 있습니다.

cron에서 작업을 예약하려면 Bash 명령 crontab -e 또는 Python의 python-crontab 모듈을 사용하여 이 파일을 직접 편집할 수 있습니다. 그러나 Windows 운영 체제에서는 이러한 스케줄링 체계를 사용할 수 없습니다.

schedule은 시스템의 시간 간격에 따라 작동하는 라이브러리입니다. 프로세스 내 스케줄러 역할을 하며 거의 모든 운영 체제에서 작동합니다.

하루 또는 일주일의 특정 시간과 같이 다양한 시간 간격으로 특정 작업을 예약하는 데 도움이 됩니다. 이제 새로운 파이썬 프로젝트를 생성하는 것부터 시작하겠습니다.

schedule 모듈을 사용하여 작업 예약

아래 지침에 따라 새 Python 프로젝트를 만듭니다.

  • 첫 번째 단계는 아나콘다 프롬프트를 설치하는 것입니다.
  • 그런 다음 프롬프트 화면에 Jupyter notebook을 입력합니다.

    python에서 schedular와 같은 cron - 아나콘다 프롬프트

  • 브라우저에 Jupyter 노트북의 페이지가 표시됩니다.

    python에서 schedular와 같은 cron - 홈 페이지

  • 새로 만들기를 클릭한 다음 Python 3 파일을 만듭니다.

    python의 schedular와 같은 cron - 새로운 python 파일

  • 다음과 같이 Python 파일이 나타납니다.

    python의 schedular와 같은 cron - python 파일

  • schedule 모듈의 기능을 사용하기 전에 schedule 모듈을 먼저 설치해야 합니다.
    pip install schedule
    
  • 필요한 모듈을 가져온 후 작업을 만들고 예약하는 코드를 살펴보겠습니다.
    import schedule
    import time
    
    
    def job():
        print("Reading time...")
    
    
    def coding():
        print("Programming time...")
    
    
    def playing():
        print("Playing time...")
    
    
    # Time
    schedule.every(5).seconds.do(job)
    schedule.every(2).minutes.do(coding)
    schedule.every().day.at("10:57").do(playing)
    while True:
        schedule.run_pending()
        time.sleep(1)
    

    이 코드에는 세 가지 작업이 정의되어 있습니다. 첫 번째 작업 읽기 시간5초마다 반복되고 두 번째 작업 코딩2분마다 반복되며 마지막 작업은 특정 시간이 되면 반복됩니다.

    while 루프의 Schedule.run_pending() 함수는 실행 대기 중인 예약된 작업이 있는지 여부를 확인합니다. 실행될 때 time.sleep(1) 함수는 보류 중인 작업을 확인하기 위해 일정을 1초 동안 지연시킵니다.

    출력:

    python에서 schedular와 같은 cron - 출력

    또한 스케줄러에게 몇 시간 또는 몇 분 후에 특정 작업을 수행하도록 요청할 수 있습니다. 예를 들어 schedule.every(5).hours.do(job) 문은 5시간마다 작업을 반복합니다.

관련 문장 - Python Cron