ホームページ  >  記事  >  バックエンド開発  >  FastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法

FastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法

WBOY
WBOYオリジナル
2023-07-28 14:22:522967ブラウズ

FastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法

インターネット アプリケーションの急速な開発に伴い、多くのアプリケーションには、データ クリーニング、電子メール送信、バックアップなど、定期的に実行する必要があるバックグラウンド タスクがいくつかあります。 、など。この問題を解決するには、スケジュールされたタスクを使用してバックグラウンド作業を自動的に実行します。この記事では、FastAPI フレームワークでスケジュールされたタスクを使用してバックグラウンド作業を実行する方法を紹介します。

FastAPI は、主に API の構築に使用される最新の高速 (高性能) Web フレームワークです。使いやすさと効率性により、バックグラウンド ワーカーとしてタスクを実行するアプリケーションの構築に最適です。

まず、必要なライブラリをインストールする必要があります。ターミナルで次のコマンドを実行して、FastAPI およびその他の関連ライブラリをインストールします。

$ pip install fastapi
$ pip install uvicorn
$ pip install apscheduler

コードを書き始める前に、まず APScheduler ライブラリについて理解する必要があります。これは、Python 用のシンプルで強力なスケジュールされたタスク ライブラリです。このライブラリは、間隔実行タスク、指定時間実行タスク、スケジュールされたトリガー タスクなど、さまざまなタイプのスケジュールされたタスク要件を処理できます。

次に、コードの記述を開始できます。

まず、必要なモジュールをインポートする必要があります:

from fastapi import FastAPI
from apscheduler.schedulers.background import BackgroundScheduler

次に、FastAPI アプリケーション オブジェクトを作成します:

app = FastAPI()

次に、バックグラウンド タスク実行オブジェクト オブジェクトを作成します:

scheduler = BackgroundScheduler()

次に、バックグラウンド タスク関数を定義します:

def background_task():
    # 这里可以编写你的后台任务逻辑
    # 例如数据清理、邮件发送、备份等
    pass

次に、スケジュールされたタスクを開始するための API インターフェイスを定義する必要があります:

@app.post("/start_task")
async def start_task():
    # 添加定时任务
    scheduler.add_job(background_task, 'interval', minutes=30)
    # 启动任务调度器
    scheduler.start()
    return {"message": "后台任务已启动"}

最後に、API インターフェイスを定義する必要がありますスケジュールされたタスクを停止するには:

@app.post("/stop_task")
async def stop_task():
    # 关闭任务调度器
    scheduler.shutdown()
    return {"message": "后台任务已停止"}

これで、スケジュールされたタスクを使用してバックグラウンド作業を実行する FastAPI アプリケーションを作成しました。次のコマンドを使用してアプリケーションを開始できます。

$ uvicorn main:app --reload

次に、Postman やブラウザなどのツールを使用してインターフェイスにアクセスし、スケジュールされたタスクを開始および停止できます。

http://localhost:8000/start_task インターフェイスにアクセスすると、スケジュールされたタスクを開始できます。スケジュールされたタスクは、30 分ごとにバックグラウンド タスクを実行します。

http://localhost:8000/stop_task インターフェイスにアクセスすると、スケジュールされたタスクを停止できます。

要約すると、この記事では、FastAPI フレームワークでスケジュールされたタスクを使用してバックグラウンド作業を実行する方法を紹介します。 APScheduler ライブラリを使用すると、スケジュールされたタスクの自動実行を簡単に実装できます。この記事がお役に立てば幸いです!

以上がFastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。