Cara menggunakan tugas berjadual dalam FastAPI untuk melaksanakan kerja latar belakang
Dengan perkembangan pesat aplikasi Internet, banyak aplikasi mempunyai beberapa tugas latar belakang yang perlu dilaksanakan dengan kerap, seperti pembersihan data, penghantaran e-mel, sandaran, dsb. Untuk menyelesaikan masalah ini, kami boleh menggunakan tugas berjadual untuk melaksanakan kerja latar belakang secara automatik. Dalam artikel ini, kami akan memperkenalkan cara menggunakan tugas berjadual dalam rangka kerja FastAPI untuk melaksanakan kerja latar belakang.
FastAPI ialah rangka kerja web moden, pantas (berprestasi tinggi) yang digunakan terutamanya untuk membina API. Kemudahan penggunaan dan kecekapannya menjadikannya ideal untuk membina aplikasi yang melaksanakan tugas sebagai pekerja latar belakang.
Pertama, kita perlu memasang perpustakaan yang diperlukan. Jalankan arahan berikut dalam terminal untuk memasang FastAPI dan perpustakaan lain yang berkaitan:
$ pip install fastapi $ pip install uvicorn $ pip install apscheduler
Sebelum mula menulis kod, kita perlu terlebih dahulu memahami perpustakaan APScheduler, iaitu perpustakaan tugas berjadual yang mudah dan berkuasa untuk Python. Pustaka ini boleh mengendalikan pelbagai jenis keperluan tugas berjadual, seperti tugas pelaksanaan selang waktu, tugas pelaksanaan masa tertentu, tugas pencetus berjadual, dsb.
Seterusnya, kita boleh mula menulis kod.
Pertama, kita perlu mengimport modul yang diperlukan:
from fastapi import FastAPI from apscheduler.schedulers.background import BackgroundScheduler
Kemudian, cipta objek aplikasi FastAPI:
app = FastAPI()
Seterusnya, buat objek pelaksana tugas latar belakang:
scheduler = BackgroundScheduler()
Kemudian, tentukan fungsi tugas latar belakang:
Nexreeet , kita perlu menentukan antara muka API untuk memulakan tugas yang dijadualkan:def background_task(): # 这里可以编写你的后台任务逻辑 # 例如数据清理、邮件发送、备份等 pass
@app.post("/start_task") async def start_task(): # 添加定时任务 scheduler.add_job(background_task, 'interval', minutes=30) # 启动任务调度器 scheduler.start() return {"message": "后台任务已启动"}
@app.post("/stop_task") async def stop_task(): # 关闭任务调度器 scheduler.shutdown() return {"message": "后台任务已停止"}
http://localhost:8000/start_task
, kami boleh memulakan tugas yang dijadualkan. Tugasan yang dijadualkan akan melaksanakan tugas latar belakang setiap 30 minit. http://localhost:8000/start_task
接口,我们可以启动定时任务。定时任务将会每隔30分钟执行一次后台任务。
通过访问http://localhost:8000/stop_task
Dengan mengakses antara muka http://localhost:8000/stop_task
, kami boleh menghentikan tugasan yang dijadualkan.
Untuk meringkaskan, artikel ini memperkenalkan cara menggunakan tugas berjadual dalam rangka kerja FastAPI untuk melaksanakan kerja latar belakang. Dengan menggunakan perpustakaan APScheduler, kami boleh melaksanakan perlaksanaan automatik tugasan berjadual dengan mudah. Semoga artikel ini dapat membantu anda!
Atas ialah kandungan terperinci Cara menggunakan tugas berjadual dalam FastAPI untuk melaksanakan kerja latar belakang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!