So verwenden Sie Python Flask, um effiziente API-Anwendungen zu erstellen und Hintergrundaufgaben zu implementieren

WBOY
Freigeben: 2023-05-08 17:49:16
nach vorne
1112 Leute haben es durchsucht

In Python gibt es mehrere Lösungen zur Implementierung von Hintergrundaufgaben, z. B. Celery oder Redis Queue, die gute Möglichkeiten zur Implementierung eines Aufgabenwarteschlangensystems darstellen. Aber beides zu nutzen ist umständlich. Stellen Sie sich ein Szenario vor, in dem wir Flask verwenden, um eine API zu erstellen, um Hintergrundaufgaben von einem Terminal aufzurufen und die Hintergrundaufgaben über ein anderes Terminal zu stoppen.

Erstellte eine einfache API mit Flask, mit zwei Hauptmethoden, eine zum Starten der Hintergrundaufgabe und die andere zum Stoppen.

Um den Lebenszyklus von Aufgaben zu verwalten, verwenden wir Event Objects, einen einfachen Mechanismus zur Kommunikation zwischen Threads. 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)
Nach dem Login kopieren

这里的关键是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)
Nach dem Login kopieren

如果要停止任务,调用clear()方法将标志设置为false

Wie unten gezeigt, sind die erforderlichen importierten Bibliotheken, Thread-Ereignisdeklarationen und Hintergrundaufgabenmethoden: 🎜
@app.route("/stop", methods=["POST"])
def stopBackgroundTask():
    try:
        thread_event.clear()
        return "Background task stopped!"
    except Exception as error:
        return str(error)
Nach dem Login kopieren
🎜Der Schlüssel hier ist die Methode is_set(), die den Wert des internen Thread-Ereignisflags zurückgibt : true oder false. 🎜🎜Verwenden Sie zunächst die Methode set(), um das Flag auf true zu setzen, wodurch ein Thread gestartet und die Methode backgroundTask kontinuierlich ausgeführt wird. 🎜rrreee🎜Wenn Sie eine Aufgabe stoppen möchten, rufen Sie die Methode clear() auf, um das Flag auf false zu setzen und den laufenden Thread zu stoppen. 🎜rrreee

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Python Flask, um effiziente API-Anwendungen zu erstellen und Hintergrundaufgaben zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage