Vue d'ensemble

Sanic 22.6, publié le 1er juillet 2022, ajoute les tâches en arrière-plan et la priorité des middlewares.

Fonctionnalités principales

Tâches en arrière-plan

Les tâches en arrière-plan permettent d'exécuter du code asynchrone indépendamment du cycle requête/réponse, utile pour les tâches périodiques.

python
from sanic import Sanic
import asyncio

app = Sanic('MonApp')

@app.before_server_start
async def setup(app, loop):
    app.add_task(tache_periodique())

async def tache_periodique():
    while True:
        print('Vérification...')
        await asyncio.sleep(60)

Priorité des middlewares

Les middlewares peuvent désormais être ordonnés par priorité, permettant un contrôle fin de l'ordre d'exécution.

python
from sanic import Sanic

app = Sanic('MonApp')

@app.middleware('request', priority=10)
async def auth_middleware(request):
    # Exécuté en premier (priorité haute)
    pass

@app.middleware('request', priority=1)
async def log_middleware(request):
    # Exécuté après auth (priorité basse)
    print(f'{request.method} {request.path}')

Sources