Aller au contenu principal
🔒 Mode aperçu. Les quinze premières leçons Foundations sont gratuites ; celle-ci est Pro. Démarrez un trial de 7 jours pour débloquer l'éditeur, les conseils AI et le reste du programme. Carte requise, annulez à tout moment dans Dashboard.Démarrer le trial de 7 jours →
← CoursSystem Design for Python JuniorsModule 1 · Fondamentaux de la conception de systèmesFiles d'attente de messagespredict9 / 105
+100 XP
Tâche
📝 **Tâche :** Prédisez l'ordre de drainage de 5 lignes à partir d'une file d'attente FIFO avec un échec transitoire qui remet en file d'attente la tâche ayant échoué jusqu'à la fin. 📋 Implémentez la fonction ci-dessus. Les tests s'exécutent automatiquement. 💡 **Indice :** Relisez la théorie si vous êtes bloqué.
Prédis la sortie

Lis le code attentivement

from collections import deque

class JobQueue:
    def __init__(self):
        self._q = deque()
    def push(self, job):
        self._q.append(job)
    def pop(self):
        return self._q.popleft() if self._q else None

q = JobQueue()
q.push("send_email:1")           # job 1
q.push("send_email:2")           # job 2
print(q.pop())                   # drain 1 → first-in first-out

q.push("send_email:3")           # job 3
q.push("send_email:4")           # job 4
q.push("send_email:5")           # job 5

# Transient failure on the next pop — retry policy puts it BACK
# on the END of the queue (FIFO order must hold).
failed = q.pop()
q.push(failed)                   # re-enqueued to the tail

# Drain everything remaining.
while True:
    j = q.pop()
    if j is None:
        break
    print(j)

# What does this print? Type your prediction.

Que va afficher le programme ? Écris ici :

💬 Discussion

Soyez le premier à poser une question ou partager une astuce.
Connectez-vous pour rejoindre la discussion. La lecture est gratuite.
Chargement de la discussion…