CloudCastle Clock

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

QueueClock — Warteschlangen-Uhr

Zweck

Gibt vordefinierte Zeitpunkte nacheinander aus; eine erschöpfte Warteschlange löst eine typisierte Ausnahme aus: ein überzähliger now()-Aufruf wird sofort sichtbar.

Wofür und wie zu verwenden

Präzise Szenarien: „erster Aufruf — 10:00, zweiter — 10:05“. push() füllt die Warteschlange auf, remaining()/isEmpty() dienen der Kontrolle.

Beispiel

$clock = QueueClock::from('2026-01-01 10:00:00', '2026-01-01 10:05:00');
$clock->now();       // 10:00:00
$clock->now();       // 10:05:00
$clock->now();       // InvalidClockValueException: the queue is empty

Anti-Patterns

Nicht für lange Schleifen mit einer unbekannten Anzahl von Lesevorgängen — die Warteschlange ist konstruktionsbedingt endlich.

Lebenszyklus

flowchart LR
    A[m1, m2, m3] -->|now| B(m1)
    B -->|now| C(m2)
    C -->|now| D(m3)
    D -->|now| E[/InvalidClockValueException/]

Funktionsvergleich mit Konkurrenten

Aspekt🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Vordefinierte Sequenz von Zeitpunkten✅❌❌❌❌❌
Ausnahme bei Erschöpfung✅❌❌❌❌❌
Auffüllen mit push() zur Laufzeit✅❌❌❌❌❌
Lesen des Kopfs ohne Verbrauch✅❌❌❌❌❌
Gesamt🏆 400000

← Zurück zur Funktionsliste


🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano