[파이썬] Flask에서의 스케줄링

Flask는 Python 웹 프레임워크로 알려져 있지만, 작업 스케줄링 또한 제공합니다. Flask에서 스케줄링을 구현하면 일정 시간 간격으로 작업을 실행하거나 특정 시간에 작업을 예약할 수 있습니다. 이는 주기적으로 데이터를 업데이트하거나 백그라운드 작업을 처리하는 데 유용합니다.

여기에서는 Flask에서의 스케줄링을 구현하는 방법을 알아보겠습니다.

Flask-APScheduler 라이브러리 설치

Flask에서 스케줄링을 구현하기 위해 Flask-APScheduler 라이브러리를 사용할 수 있습니다. 이 라이브러리는 APScheduler라는 인기있는 Python 스케줄링 라이브러리를 Flask와 통합하여 사용할 수 있도록 해줍니다.

먼저, Flask-APScheduler 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:

pip install flask-apscheduler

스케줄링 작업 생성하기

Flask-APScheduler를 사용하여 스케줄링 작업을 생성하기 위해 Flask 어플리케이션에서 다음 단계를 따라야 합니다:

  1. Flask 어플리케이션을 초기화 합니다. ```python from flask import Flask from flask_apscheduler import APScheduler

app = Flask(name) scheduler = APScheduler()

스케줄러 설정

app.config[‘SCHEDULER_API_ENABLED’] = True

scheduler.init_app(app) scheduler.start()


2. 스케줄링 작업을 구현하기 위해 함수를 작성합니다. 작업은 주기적으로 실행되는 또는 특정 시각에 실행되는 함수로 구성됩니다.
```python
@scheduler.task('interval', id='do_job_1', seconds=10, misfire_grace_time=900)
def job1():
    print("스케줄링 작업 1")

@scheduler.task('interval', id='do_job_2', seconds=20, misfire_grace_time=900)
def job2():
    print("스케줄링 작업 2")

@scheduler.task('cron', id='do_job_3', hour='0,12')
def job3():
    print("스케줄링 작업 3")
  1. Flask 어플리케이션 실행
    if __name__ == '__main__':
     app.run()
    

스케줄링 작업 예약하기

작업을 예약하려면 Flask-APScheduler scheduler 객체를 사용해야 합니다.

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    # job1 작업 예약하기
    app.scheduler.add_job(func=job1, trigger='interval', seconds=10, id='job_1')

    # job2 작업 예약하기
    app.scheduler.add_job(func=job2, trigger='interval', seconds=20, id='job_2')

    return "스케줄링 작업이 예약되었습니다."

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

위의 예제에서는 / URL로 요청이 들어오면 index 함수가 실행됩니다. index 함수에서 작업을 예약하고, 예약된 작업은 주기적으로 실행됩니다.

결론

이제 Flask 어플리케이션에서 간단한 작업 스케줄링을 구현하는 방법을 배웠습니다. Flask-APScheduler 라이브러리를 사용하면 Flask와 APScheduler을 함께 사용할 수 있어 편리합니다. 개발자는 이를 통해 백그라운드 작업을 예약하고 주기적으로 처리할 수 있습니다.