首頁  >  文章  >  後端開發  >  使用Python Flask建立高效能API應用程式並實作後台任務的方法

使用Python Flask建立高效能API應用程式並實作後台任務的方法

WBOY
WBOY轉載
2023-05-08 17:49:161116瀏覽

在Python中,有若干解決方案可以實現後台任務,例如Celery或Redis Queue,都是實現任務佇列系統的好方法。但使用這二者都比較麻煩。設想這樣一個場景,我們用Flask建立一個API,實現從一個終端呼叫後台任務,並用另一個終端停止後台任務。

使用Flask建立了一個簡單的API,有兩個主要的方法,一個用於啟動後台任務,另一個用於停止。

為了管理任務的生命週期,我們使用Event Objects,這是一個簡單的執行緒間通訊機制。

如下所示是所需導入的函式庫、執行緒事件宣告和後台任務方法:

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()方法,它將傳回內部執行緒事件標誌的值:truefalse

首先,使用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,以停止正在執行的執行緒。

@app.route("/stop", methods=["POST"])
def stopBackgroundTask():
    try:
        thread_event.clear()
        return "Background task stopped!"
    except Exception as error:
        return str(error)

以上是使用Python Flask建立高效能API應用程式並實作後台任務的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除