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