Flask는 Python 웹 프레임워크로 알려져 있지만, 작업 스케줄링 또한 제공합니다. Flask에서 스케줄링을 구현하면 일정 시간 간격으로 작업을 실행하거나 특정 시간에 작업을 예약할 수 있습니다. 이는 주기적으로 데이터를 업데이트하거나 백그라운드 작업을 처리하는 데 유용합니다.
여기에서는 Flask에서의 스케줄링을 구현하는 방법을 알아보겠습니다.
Flask-APScheduler 라이브러리 설치
Flask에서 스케줄링을 구현하기 위해 Flask-APScheduler
라이브러리를 사용할 수 있습니다. 이 라이브러리는 APScheduler라는 인기있는 Python 스케줄링 라이브러리를 Flask와 통합하여 사용할 수 있도록 해줍니다.
먼저, Flask-APScheduler
라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 설치할 수 있습니다:
pip install flask-apscheduler
스케줄링 작업 생성하기
Flask-APScheduler를 사용하여 스케줄링 작업을 생성하기 위해 Flask 어플리케이션에서 다음 단계를 따라야 합니다:
- 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")
- 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을 함께 사용할 수 있어 편리합니다. 개발자는 이를 통해 백그라운드 작업을 예약하고 주기적으로 처리할 수 있습니다.