Tâche
📝 **Tâche :** Créez un petit \`dead_letter_handler(msg, retry_count, max_retries)\` qui renvoie l'un des \`"retry"\`, \`"deadletter"\` ou \`"drop"\` :
1. \`msg.get("malformed", False) est True\` → \`"drop"\` (ne réessayez jamais une entrée corrompue - elle échouera pour toujours).
2. \`retry_count < max_retries\` → \`"retry"\` (toujours en dessous du budget).
3. \`retry_count == max_retries\` → \`"deadletter"\` (utilisé le budget — route vers DLQ pour examen des opérations).
4. \`retry_count > max_retries\` → \`"drop"\` (déjà DLQ ; les échecs suivants tombent silencieusement pour arrêter le bruit).
Ce modèle protège chaque file d’attente de production des tempêtes de messages empoisonnés.
📋 Implémentez la fonction ci-dessus. Les tests s'exécutent automatiquement.
💡 **Indice :** Relisez la théorie si vous êtes bloqué.