Dalam Python, terdapat beberapa penyelesaian untuk melaksanakan tugasan latar belakang, seperti Celery atau Redis Queue, yang merupakan cara yang baik untuk melaksanakan sistem baris gilir tugas. Tetapi menggunakan kedua-duanya adalah menyusahkan. Bayangkan senario di mana kami menggunakan Flask untuk membina API untuk memanggil tugas latar belakang dari satu terminal dan menghentikan tugas latar belakang menggunakan terminal lain.
Membina API mudah menggunakan Flask, dengan dua kaedah utama, satu untuk memulakan tugas latar belakang dan satu lagi untuk menghentikannya.
Untuk mengurus kitaran hayat tugas, kami menggunakan Event Objects
, iaitu mekanisme komunikasi antara benang yang mudah.
Seperti yang ditunjukkan di bawah ialah perpustakaan yang diimport, pengisytiharan acara benang dan kaedah tugas latar belakang:
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)
Kunci di sini ialah kaedah is_set()
, yang akan mengembalikan nilai acara utas dalaman bendera: true
atau false
.
Pertama, gunakan kaedah set()
untuk menetapkan bendera kepada true
, yang akan memulakan urutan dan menjalankan kaedah backgroundTask
secara berterusan.
@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)
Jika anda ingin menghentikan tugasan, panggil kaedah clear()
untuk menetapkan bendera kepada false
untuk menghentikan utas yang sedang berjalan.
Atas ialah kandungan terperinci Cara menggunakan Flask Python untuk membina aplikasi API yang cekap dan melaksanakan tugas latar belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!