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

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

WBOY
WBOY転載
2023-05-08 17:49:161158ブラウズ

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 までご連絡ください。