Description du projet
TraduitL'observabilité est tout aussi importante. Nous avons besoin d'un tableau de bord de surveillance montrant la réalité : débit par file d'attente en temps réel, compteurs de succès et d'erreurs, profondeur actuelle de la file d'attente et combien de travaux attendent par rapport à ceux qui s'exécutent, et temps de traitement moyen et dans le pire des cas. Lorsqu'un travail échoue, je veux voir l'erreur, la charge utile utile, l'historique des réessais, et pouvoir le renvoyer manuellement dans la file d'attente d'un clic. Le tableau de bord doit également nous permettre de mettre une file d'attente en pause, d'arrêter gracieusement les travailleurs, et d'inspecter les travaux programmés avant qu'ils ne s'exécutent. Pour être clair sur la portée : ce n'est pas une interface utilisateur pour cron qui exécute simplement des tâches récurrentes, et ce n'est pas un retransmetteur de webhook. L'accent est mis sur le traitement des travailleurs asynchrones plus une forte observabilité autour de cela.
Proposez une solution de stockage backend et justifiez le choix. Je me soucie des garanties de livraison au moins une fois, d'un fonctionnement sûr avec des travailleurs concurrents afin qu'un travail ne s'exécute jamais deux fois, et d'un arrêt gracieux correct lors du déploiement. Nous avons besoin de code testé avec une documentation claire pour la configuration afin que l'équipe puisse l'exécuter et l'étendre.
— Files d'attente nommées avec pools de travailleurs et concurrence configurable
— Réessais avec backoff exponentiel et file d'attente de lettres mortes
— Travaux différés et programmés, disponibles à un moment spécifié
— Tableau de bord en direct : débit, erreurs, profondeurs de file d'attente, latences
— Retour manuel à la file d'attente, pause, et arrêt gracieux des travailleurs