Maxima's Lab

[Flask] Scheduler 사용법 (APScheduler 패키지) 본문

Web Programming

[Flask] Scheduler 사용법 (APScheduler 패키지)

Minima 2023. 11. 6. 20:55
728x90
SMALL

안녕하세요, 오늘은 Flask에서 APScheduler 패키지를 활용해서 Scheduler를 사용하는 방법에 대해서 알아보겠습니다.

 

먼저, APScheduler 패키지를 설치합니다.

 

pip install Flask APScheduler

 

아래는 Scheduler를 사용하는 Flask Server 예제 전체 코드입니다.

from flask import Flask
from flask_apscheduler import APScheduler

class Config:
    SCHEDULER_API_ENABLED = True

app = Flask(__name__)
app.config.from_object(Config())

scheduler = APScheduler()
scheduler.init_app(app)
scheduler.start()

@app.route('/')
def index():
    return "Flask Server!"

@scheduler.task('interval', id='schedule_1', seconds=5, misfire_grace_time=900)
def schedule_1():
    global count
    print(f"{count} : Schedule Function is executed.")
    count += 1

if __name__ == '__main__':
    count = 1
    app.run()

 

위의 전체 코드에서 scheduler_1() 함수에 대해서 설명하겠습니다.

 

@scheduler.task('interval', id='schedule_1', seconds=5, misfire_grace_time=900)
def schedule_1():
    global count
    print(f"{count} : Schedule Function is executed.")
    count += 1

 

실행 결과는 다음과 같습니다.

1 : Schedule Function is executed.
2 : Schedule Function is executed.
3 : Schedule Function is executed.
4 : Schedule Function is executed.
5 : Schedule Function is executed.
6 : Schedule Function is executed.
7 : Schedule Function is executed.
8 : Schedule Function is executed.
9 : Schedule Function is executed.
10 : Schedule Function is executed.

 

위의 코드에서 seconds=5(5초) 마다 scheduler_1() 함수가 실행됩니다. 추가적으로, id는 각 scheduler가 중첩되는 것을 방지하기 위해 고유한 id로 설정하게 됩니다. 마지막, misfire_grace_time (sec)은 정의된 작업을 실행할 수 없는 상황에서 해당 작업을 misfire로 간주하기 위해 대기하는 최대 시간을 의미합니다. 

 

 

이상으로 APScheduler 패키지를 활용해서 Scheduler를 사용하는 방법에 대해서 알아보았습니다.

감사드립니다.

728x90
LIST
Comments