Comment utiliser des tâches planifiées dans FastAPI pour effectuer un travail en arrière-plan

WBOY
Libérer: 2023-07-28 14:22:52
original
2970 Les gens l'ont consulté

Comment utiliser les tâches planifiées dans FastAPI pour effectuer un travail en arrière-plan

Avec le développement rapide des applications Internet, de nombreuses applications ont des tâches en arrière-plan qui doivent être exécutées régulièrement, telles que le nettoyage des données, l'envoi d'e-mails, la sauvegarde, etc. Afin de résoudre ce problème, nous pouvons utiliser des tâches planifiées pour exécuter automatiquement un travail en arrière-plan. Dans cet article, nous expliquerons comment utiliser les tâches planifiées dans le framework FastAPI pour effectuer un travail en arrière-plan.

FastAPI est un framework Web moderne et rapide (haute performance) principalement utilisé pour créer des API. Sa facilité d'utilisation et son efficacité le rendent idéal pour créer des applications qui effectuent des tâches en tant que travailleurs en arrière-plan.

Tout d’abord, nous devons installer les bibliothèques requises. Exécutez la commande suivante dans le terminal pour installer FastAPI et d'autres bibliothèques associées :

$ pip install fastapi
$ pip install uvicorn
$ pip install apscheduler
Copier après la connexion

Avant de commencer à écrire du code, nous devons d'abord comprendre la bibliothèque APScheduler, qui est une bibliothèque de tâches planifiées simple et puissante pour Python. Cette bibliothèque peut gérer différents types d'exigences de tâches planifiées, telles que les tâches d'exécution par intervalles, les tâches d'exécution à temps spécifié, les tâches de déclenchement planifiées, etc.

Ensuite, nous pouvons commencer à écrire du code.

Tout d'abord, nous devons importer les modules requis :

from fastapi import FastAPI
from apscheduler.schedulers.background import BackgroundScheduler
Copier après la connexion

Ensuite, créez un objet d'application FastAPI :

app = FastAPI()
Copier après la connexion

Ensuite, créez un objet exécuteur de tâche en arrière-plan :

scheduler = BackgroundScheduler()
Copier après la connexion

Ensuite, définissez une fonction de tâche en arrière-plan :

def background_task():
    # 这里可以编写你的后台任务逻辑
    # 例如数据清理、邮件发送、备份等
    pass
Copier après la connexion

Suivant , nous devons définir une interface API pour démarrer la tâche planifiée :

@app.post("/start_task")
async def start_task():
    # 添加定时任务
    scheduler.add_job(background_task, 'interval', minutes=30)
    # 启动任务调度器
    scheduler.start()
    return {"message": "后台任务已启动"}
Copier après la connexion

Enfin, nous devons définir une interface API pour arrêter la tâche planifiée :

@app.post("/stop_task")
async def stop_task():
    # 关闭任务调度器
    scheduler.shutdown()
    return {"message": "后台任务已停止"}
Copier après la connexion

Maintenant, nous avons écrit l'arrière-plan pour utiliser l'exécution de la tâche planifiée Working FastAPI application. Nous pouvons utiliser la commande suivante pour démarrer l'application :

$ uvicorn main:app --reload
Copier après la connexion

Ensuite, nous pouvons utiliser des outils tels que Postman ou un navigateur pour accéder à l'interface afin de démarrer et d'arrêter les tâches planifiées.

En accédant à l'interface http://localhost:8000/start_task, nous pouvons démarrer des tâches planifiées. La tâche planifiée exécutera une tâche en arrière-plan toutes les 30 minutes. http://localhost:8000/start_task接口,我们可以启动定时任务。定时任务将会每隔30分钟执行一次后台任务。

通过访问http://localhost:8000/stop_task

En accédant à l'interface http://localhost:8000/stop_task, nous pouvons arrêter la tâche planifiée.

Pour résumer, cet article explique comment utiliser les tâches planifiées dans le framework FastAPI pour effectuer un travail en arrière-plan. En utilisant la bibliothèque APScheduler, nous pouvons facilement implémenter l'exécution automatique des tâches planifiées. J'espère que cet article vous sera utile ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal