Der Arbeiter liest die drei Spuren, und die Reihenfolge ist die Prioritaet

Ohne diese Zeile laege nach den beiden vorigen Aufgaben jede Mail unverschickt
in einer Schlange, die niemand abholt — still, ohne Fehlermeldung. Code und
Compose gehoeren deshalb zusammen ausgerollt.

Diese Aenderung wirkt erst, wenn der Arbeiter-Container neu gestartet wird —
ein laufender alter Arbeiter liest weiter nur `default`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
feat/versandtakt
nexxo 2026-08-03 17:08:04 +02:00
parent f40b762413
commit 3a9a9d2f77
2 changed files with 27 additions and 1 deletions

View File

@ -67,7 +67,13 @@ services:
# with "touch(): Utime failed: Operation not permitted". Reported from live
# right after a deployment, and it is the queue that renders mails.
user: "www-data"
command: php artisan queue:work redis --tries=3 --timeout=90
# Die Reihenfolge in --queue IST die Prioritaet: der Arbeiter sieht erst in
# mail-direkt nach und geht erst weiter, wenn dort nichts liegt, dann
# mail-wichtig, dann mail-ruhig. Ohne diese Zeile bedient `queue:work` nur
# `default` — die drei Mail-Schlangen liefen still ohne Fehlermeldung voll,
# weil niemand sie abholt. `default` bleibt am Ende: dort laeuft alles, was
# keine Mail ist, und es darf durch diese Aenderung nicht verhungern.
command: php artisan queue:work redis --queue=mail-direkt,mail-wichtig,mail-ruhig,default --tries=3 --timeout=90
volumes:
- .:/var/www/html
depends_on:

View File

@ -0,0 +1,20 @@
<?php
use Illuminate\Support\Facades\File;
/**
* Der Arbeiter muss die Spuren kennen.
*
* Die Reihenfolge IST die Priorität: der Arbeiter sieht erst in mail-direkt
* nach und geht erst weiter, wenn dort nichts liegt. Deshalb steht ein
* Kennwort-Zurücksetzen nie hinter zweihundert Rechnungen nicht wegen einer
* Sortierung, sondern weil es in einer anderen Schlange liegt.
*
* `default` bleibt am Ende stehen: dort läuft alles, was keine Mail ist, und es
* darf durch diese Änderung nicht verhungern.
*/
it('laesst den Arbeiter die drei Spuren in der richtigen Reihenfolge lesen', function () {
$compose = File::get(base_path('docker-compose.yml'));
expect($compose)->toContain('--queue=mail-direkt,mail-wichtig,mail-ruhig,default');
});