[python] Flask-RESTful에서 특정 시간에 작업을 스케줄링하는 방법

Flask-RESTful은 Flask 프레임워크를 기반으로 한 RESTful API를 구축하기 위한 도구입니다. Flask-RESTful을 사용하여 특정 시간에 작업을 스케줄링하는 방법을 알아보겠습니다.

1. APScheduler 설치

APScheduler는 Python에서 작업 스케줄링을 관리하기 위한 라이브러리입니다. 먼저 APScheduler를 설치해야 합니다. 다음 명령어를 사용하여 APScheduler를 설치합니다.

pip install apscheduler

2. Flask-APScheduler 확장팩 설치

Flask-APScheduler는 Flask와 APScheduler를 연결해주는 확장팩입니다. Flask-APScheduler를 설치하기 위해 다음 명령어를 실행합니다.

pip install flask_apscheduler

3. Flask-RESTful에서 스케줄링 기능 사용하기

Flask-RESTful에서 스케줄링 기능을 사용하려면 다음과 같은 단계를 따릅니다.

3.1. Flask-APScheduler 초기화하기

from flask import Flask
from flask_apscheduler import APScheduler

app = Flask(__name__)
scheduler = APScheduler()

def some_job():
    print("Scheduled job executed!")

@app.route("/")
def hello():
    return "Hello, Flask-APScheduler!"

if __name__ == "__main__":
    scheduler.add_job(id="some_job", func=some_job, trigger="interval", minutes=1)
    scheduler.start()
    app.run()

위의 코드에서 some_job() 함수는 스케줄링할 작업을 정의한 함수입니다. scheduler.add_job() 메소드를 사용하여 작업을 스케줄에 추가하고, trigger 매개변수를 사용하여 작업의 실행 주기를 설정합니다.

3.2. 스케줄링 작업 실행하기

위의 예제에서는 some_job() 함수를 1분마다 실행합니다. scheduler.start() 메소드를 호출하여 스케줄링 작업을 시작합니다.

3.3. Flask-APScheduler와 Flask-RESTful 함께 사용하기

Flask-APScheduler와 Flask-RESTful을 함께 사용하기 위해 다음과 같은 단계를 따릅니다.

from flask import Flask
from flask_apscheduler import APScheduler
from flask_restful import Api, Resource

app = Flask(__name__)
scheduler = APScheduler()
api = Api(app)

def some_job():
    print("Scheduled job executed!")

class HelloWorld(Resource):
    def get(self):
        return {"message": "Hello, Flask-APScheduler and Flask-RESTful!"}

api.add_resource(HelloWorld, "/")

if __name__ == "__main__":
    scheduler.add_job(id="some_job", func=some_job, trigger="interval", minutes=1)
    scheduler.start()
    app.run()

위의 코드에서 HelloWorld 클래스는 Flask-RESTful의 리소스를 정의한 클래스입니다. API 엔드포인트를 설정하기 위해 api.add_resource() 메소드를 사용합니다.

결론

Flask-RESTful과 APScheduler를 함께 사용하여 Flask 애플리케이션에서 작업을 스케줄링하는 방법을 알아보았습니다. Flask-APScheduler를 사용하면 간단한 설정으로 작업을 주기적으로 실행할 수 있습니다. 자세한 내용은 Flask-APScheduler 및 APScheduler의 공식 문서를 참조하십시오.

참고 자료