ホームページ > バックエンド開発 > Python チュートリアル > Python Flask を使用して効率的な API アプリケーションを構築し、バックグラウンド タスクを実装する方法

Python Flask を使用して効率的な API アプリケーションを構築し、バックグラウンド タスクを実装する方法

WBOY
リリース: 2023-05-08 17:49:16
転載
1145 人が閲覧しました

Python には、Celery や Redis Queue など、バックグラウンド タスクを実装するためのソリューションがいくつかあり、タスク キュー システムを実装するのに適した方法です。しかし、両方を使用するのは面倒です。 Flask を使用して API を構築し、ある端末からバックグラウンド タスクを呼び出し、別の端末を使用してバックグラウンド タスクを停止するシナリオを想像してください。

Flask を使用して、バックグラウンド タスクを開始するためのメソッドと停止するための 2 つの主要なメソッドを備えたシンプルな API を構築しました。

タスクのライフサイクルを管理するには、単純なスレッド間通信メカニズムである イベント オブジェクト を使用します。

必要なインポートされたライブラリ、スレッド イベント宣言、およびバックグラウンド タスク メソッドは次のとおりです。

from time import sleep
from flask import Flask
from flask_cors import CORS
import threading
thread_event = threading.Event()
def backgroundTask():
    while thread_event.is_set():
        print('Background task running!')
        sleep(5)
ログイン後にコピー

ここで重要なのは、内部プロパティを返す is_set() メソッドです。スレッド イベント フラグの値: true または false

まず、set() メソッドを使用してフラグを true に設定します。これにより、スレッドが開始され、backgroundTask メソッドが継続的に実行されます。 。

@app.route("/start", methods=["POST"])
def startBackgroundTask():
    try:
        thread_event.set()
        thread = threading.Thread(target=backgroundTask)
        thread.start()
        return "Background task started!"
    except Exception as error:
        return str(error)
ログイン後にコピー

タスクを停止する場合は、clear() メソッドを呼び出してフラグを false に設定し、実行中のスレッドを停止します。

rree

以上がPython Flask を使用して効率的な API アプリケーションを構築し、バックグラウンド タスクを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート