Python의 간단한 스케줄러

우리는 모두 인생에서 자동화하고 싶은 일에 직면합니다. 미리 알림과 일정을 설정하는 것이 그 중 하나입니다.
Python을 사용하면 모든 개발자가 지루한 작업을 예약할 수 있는 작은 Python 스크립트를 쉽게 만들 수 있습니다.



일정이라는 #멋진 라이브러리가 있습니다.
(거기에 꽤 이름이 생겼어요 😉)

이것으로 놀면서 시작합시다


설치



먼저 파이썬 패키지를 먼저 설치합시다.

pip install schedule  


소개



schedule은 구성을 위해 빌더 패턴을 사용하는 주기적 작업을 위한 진행 중인 스케줄러입니다. 일정을 사용하면 간단하고 사람에게 친숙한 구문을 사용하여 미리 정해진 간격으로 Python 함수(또는 다른 호출 가능 함수)를 주기적으로 실행할 수 있습니다.

Python job scheduling for humans.



지금 in-process scheduling이 무엇인지 걱정하지 말자
코드를 작성해 봅시다

import schedule  

def job():  
    print("A Simple Python Scheduler.")  

# run the function job() every 2 seconds  
schedule.every(2).seconds.do(job)  

while True:  
    schedule.run_pending()  


위의 코드는 2초마다 A Simple Python Scheduler.를 인쇄합니다.



한 줄 한 줄 이해하자
  • import schedule사용할 패키지를 가져오기만 하면 설명이 필요하지 않습니다.
  • def job()일정에 따라 실행하려는 기능입니다.
  • schedule.every(2).seconds.do(job)이것은 마술이 일어나는 곳입니다
    작업은 Scheduler.every() 메서드에 의해 생성되고 반환되며, 여기서도 간격(시간 단위)을 정의합니다. 여기서 간격은 초*입니다.
    do()은 작업이 실행될 때마다 호출되어야 하는 job_func를 지정합니다.
    추가 인수는 작업이 실행될 때 job_func에 전달됩니다.
    즉 진술schedule.every(2).seconds.do(job(argument)) 오류가 발생합니다.
    대신 사용schedule.every(2).seconds.do(job, arg1, arg2)
  • schedule.run_pending()run_pending()은 실행이 예약된 모든 작업을 실행합니다.
    예약 작업이 항상 실행되도록 하려면 루프에서 실행해야 합니다.

  • Hurray 우리는 Python을 사용하여 첫 번째 스케줄러를 작성했습니다.

    기타 변형



    import schedule
    import time
    
    def job():
        print("I'm working...")
    
    def job2():
        print("yo boiss..")
    
    def job3():
        print("Hello")
    
    schedule.every(5).seconds.do(job)
    # some other variations 
    schedule.every().hour.do(job)
    schedule.every().day.at("12:25").do(job)
    schedule.every(5).to(10).minutes.do(job)
    schedule.every().thursday.at("19:15").do(job)
    schedule.every().wednesday.at("13:15").do(job)
    schedule.every().minute.at(":17").do(job)
    schedule.every(2).seconds.do(job2)
    
    while True:
        schedule.run_pending()
        time.sleep(1)
    

    위는 작업을 예약할 수 있는 몇 가지 다른 방법입니다.
  • schedule.every().hour.do(job)
    매시간 job() 함수를 실행합니다.
  • schedule.every().day.at("12:25").do(job)
    매일 오후 12시 25분에 job() 함수를 실행합니다.
    기본적으로 일정은 24시간 형식을 사용합니다.
  • schedule.every().wednesday.at("13:15").do(job)
    job() 매주 수요일 오후 1시 15분.
    특정 작업을 실행할 요일 이름을 지정할 수도 있습니다.
    사용 가능한 것의 list을 참조하십시오.
  • schedule.every(2).to(5).minutes.do(job3)
    이것은 2~5분마다 실행됩니다job3().

  • 보너스 물건





    이제 일정을 잡을 수 있습니다.
    해야 할 몇 가지 항목을 상기시킬 수 있다면 어떨까요?
    smtplib가 구조하러 옵니다.
    smtplib를 사용하여 이메일을 보낼 수 있습니다(이메일은 스팸 폴더로 들어갑니다 🙃).

    다음은 파이썬을 사용하여 이메일을 보내는 간단한 스크립트입니다.

    import smtplib
    
    
    def sendEmail(sender_email, password, to, subject, msg):
        try:
            server = smtplib.SMTP('smtp.gmail.com', 587)
            server.starttls()
            server.login(sender_email, password)
    
            message = f'From: {sender_email}\nTo: {to}\nSubject: {subject}\n\n{msg}'
            print(message)
    
            server.sendmail(sender_email, to, message)
            server.quit()
            print("Email Sent")
        except:
            print("Some Error Occured")
    
    if __name__ == '__main__':
        SENDER_EMAIL = "[email protected]"
        PASSWORD = "password"
        TO = "[email protected]"
        SUBJECT = "Just having fun"
        MESSAGE = "hey dawg! it's my first Email"
        sendEmail(SENDER_EMAIL, PASSWORD, TO, SUBJECT, MESSAGE)
    
    


    이제 스팸 폴더를 확인하세요 😜

    이 게시물이 마음에 드셨기를 바랍니다 😄

    Seems interesting?, Subscribe 🚀 to read more such cool stuff or just connect with me on .

    좋은 웹페이지 즐겨찾기