Ovladač fronty při selhání v Laravel 12.34

Ovladač fronty s podporou převzetí služeb při selhání Ve verzi Laravel 12.34 je k dispozici nová ovladač fronty s podporou převzetí služeb při selhání byla zavedena za účelem zvýš...

Poptat web

15. 10. 2025

Ovladač fronty při selhání v Laravel 12.34

Ovladač fronty s podporou převzetí služeb při selhání

Ve verzi Laravel 12.34 je k dispozici nová ovladač fronty s podporou převzetí služeb při selhání byla zavedena za účelem zvýšení spolehlivosti při zpracování úloh. Umožňuje definovat více spojení fronty v pořadí podle priority. Pokud první spojení selže, Laravel se automaticky pokusí úlohu přesunout na další dostupné spojení.

Tato funkce je obzvláště užitečná v produkčních prostředích, kde je důležitá doba provozu a doručení úloh.

Jak funguje ovladač fronty s podporou převzetí služeb při selhání

Ovladač převzetí služeb při selhání funguje jako obal kolem více připojení fronty. Když je úloha odeslána, Laravel se ji pokusí odeslat na první spojení. Pokud toto spojení selže, automaticky vyzkouší další v seznamu, dokud neuspěje nebo nevyčerpá všechna nakonfigurovaná spojení.

Tím je zajištěno, že úlohy nebudou ztraceny, pokud dojde k dočasnému výpadku hlavního systému fronty (např. Redis).

Definice připojení fronty s podporou převzetí služeb při selhání

Ovladač převzetí služeb při selhání můžete nakonfigurovat ve svém config/queue.php soubor. Zde je základní příklad:

'connections' => [
'failover' => [
'driver' => 'failover',
'connections' => [
'redis',
'database',
],
],
 
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
],
 
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'retry_after' => 90,
],
],

V tomto příkladu:

  • Laravel se nejprve pokusí odeslat úlohy do adresáře Redis fronta.
  • Pokud je služba Redis nedostupná, vrátí se zpět k systému databáze fronta.

Nastavení výchozího připojení fronty

Po definování ovladače převzetí služeb při selhání jej můžete nastavit jako výchozí připojení fronty ve svém .env soubor:

QUEUE_CONNECTION=failover

Tím se zajistí, že všechny úlohy ve frontě budou automaticky používat logiku převzetí služeb při selhání.

Kdy použít ovladač převzetí služeb při selhání

Ovladač fronty s převzetím služeb při selhání je ideální pro:

  • Aplikace, kde spolehlivost práce je zásadní.
  • Systémy s více backendů fronty (např. Redis, SQS a databáze).
  • Vysoká dostupnost prostředí, kde by výpadek jednoho systému fronty neměl přerušit zpracování úloh.

Souhrn

Ovladač fronty Laravel pro převzetí služeb při selhání zajišťuje nepřerušované odesílání úloh tím, že se při selhání primárního připojení elegantně vrátí k záložnímu připojení. Jeho konfigurace zabere jen několik řádků, ale významně zvyšuje odolnost produkčních aplikací.

Další podrobnosti naleznete v oficiální dokumentace Laravel queue failover a framework pull request #57341.

Původní článek publikoval Nabil Hassen.