Backend, API et données · Mixte

Files d'attente et travaux d'arrière-plan

En une ligne : Tout ce qui prend plus d'une seconde et n'est pas nécessaire à la réponse à l'utilisateur appartient à une file, pas à la requête.

Ce qui passe en arrière-plan

L'envoi d'e-mails et de notifications, la génération de rapports, le traitement de médias, la synchronisation avec des systèmes externes et tout appel à un service dont vous ne contrôlez pas la disponibilité.

Le résultat : une réponse rapide à l'utilisateur, et de la résilience — quand le service externe tombe, les travaux attendent au lieu d'échouer.

Trois règles par travail

Répétable. Une double exécution ne crée pas de doublon. Atteignez cela avec une clé unique par action.

Petit. Un travail qui tourne deux heures est un travail qu'on ne peut pas réessayer. Découpez-le.

Rapporté. Début, fin, échec et nombre de tentatives.

Ce qui est oublié

Une file de lettres mortes pour les travaux qui ont échoué à plusieurs reprises, avec une alerte — sinon ils disparaissent silencieusement. Réessai avec délai croissant, pour ne pas faire tomber un service déjà en difficulté. Et l'ordre : si l'ordre compte, fixez une clé de partition ; sinon, ne le supposez pas.

Pour aller plus loin

Surveillez trois métriques : longueur de la file, âge du travail le plus ancien et taux d'échec. Une longueur de file qui monte lentement sur des jours est le symptôme précoce de la plupart des incidents de charge, et il se voit bien avant que l'utilisateur ne ressente quoi que ce soit.