Laravel 13.31 bringt Queue-totalSize() und ein JobInterrupted-Event
Laravel v13.31.0 liefert eine neue Queue::totalSize()-Methode und ein JobInterrupted-Event für Interruptible-Jobs.
Dazu kommen Chaperone-Support für BelongsToMany-Pivot-Modelle, eine Vite-Methode devServerUrl(), Once-Assertions für die Mail- und Notification-Fakes sowie zahlreiche Bugfixes.
Das Laravel-Team hat am 8. September 2026 die Version v13.31.0 veröffentlicht. Die wichtigsten Neuerungen sind eine Queue::totalSize()-Methode und ein neues JobInterrupted-Event.
use Illuminate\Queue\Events\JobInterrupted;
Event::listen(JobInterrupted::class, function (JobInterrupted $event) {
// Handle the job interruption
});Jack Bayliss steuerte totalSize() bei. Die Methode liefert die Gesamtzahl der Jobs auf einer Queue-Verbindung in einem Aufruf. Bisher musste man dafür totalPendingSize(), totalDelayedSize() und totalReservedSize() selbst addieren. Der Pull Request ist #61373.
Bayliss fügte außerdem in PR #61412 das JobInterrupted-Event hinzu. Es feuert, wenn ein Worker einen Job unterbricht, der den Interruptible-Contract implementiert, sodass Anwendungen Aufräumarbeiten oder Logging anhängen können. Eine weitere Änderung desselben Contributors ergänzt das bestehende WorkerStopping-Event um Connection- und Queue-Namen, wenn ein Worker beendet wird.
Caleb White brachte in PR #61152 Chaperone-Support für BelongsToMany-Pivot-Modelle. Ein Aufruf von chaperone() auf einer belongsToMany-Relation erlaubt es einem eigenen Pivot-Modell, seine BelongsTo-Relationen aus den bereits hydrierten Modellen aufzulösen, ohne zusätzliche Datenbankabfragen. Ohne eigenes Pivot-Modell ist der Aufruf ein No-op. Die Relationsnamen werden automatisch erraten, lassen sich aber über die Argumente declaring und related überschreiben.
Die Vite-Klasse erhielt von ramonmalcolm10 eine devServerUrl()-Methode, nützlich zum Erzeugen von Asset-URLs gegen den Dev-Server. Die Mail- und Notification-Fakes bekamen von talaridisTh Once-Assertions: assertSentOnce() und assertQueuedOnce() für Mail sowie assertSentToOnce() und assertSentOnDemandOnce() für Notification, als Ersatz für das bisherige assertSentTimes(..., 1)-Muster.
Der Changelog enthält zudem bemerkenswerte Fixes. Orrison machte den Redis-Queue-Treiber cluster-sicher und fügte Retry-Handling für phpredis bei Verbindungsabbrüchen hinzu. Ein Memory Leak im HTTP Client wurde behoben. Weitere Fixes betreffen lazy() und lazyById(), die limit() und offset() ignorierten, die Context-Propagation an parallele Prozesse, den Closure-Scope von wherePivot(), die Attribute UsePolicy und UseEloquentBuilder, die nun von Elternklassen aufgelöst werden, sowie den fehlenden create_sid() im ArraySessionHandler im Hinblick auf PHP 9.0. Der komplette Diff zwischen v13.30.1 und v13.31.0 liegt auf GitHub.
Leserforum
Noch keine Beiträge — eröffne die Debatte.
Starte die Diskussion
Kein Konto, kein Passwort nötig — gib einfach deine E-Mail-Adresse ein, wir senden dir einen einmaligen Anmelde-Link. Beim ersten Mal bist du damit automatisch angemeldet.
Deine Bewertung wird nach der Anmeldung automatisch übernommen.
Schau in dein Postfach
Wir haben einen Anmelde-Link an … gesendet. Öffne ihn auf diesem Gerät — dieser Tab meldet dich automatisch an.
Nichts angekommen? Wirf einen Blick in den Spam-Ordner — und markiere die Mail dort als „Kein Spam“, dann landet sie künftig direkt im Postfach.