NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Campaigns for Laravel

Fronty a dávky

Každá kampaň je jedna dávka jobov Laravelu. prepare() otvorí prázdnu dávku na fronte odosielania — s allowFailures() a callbackom finally, ktorý kampaň ukončí, keď dobehnú všetky joby — a id dávky uloží ku kampani. start() potom do tejto dávky pridá jeden process-recipient-job na každého uloženého príjemcu; ak nie je komu posielať, kampaň sa dokončí hneď.

Workery

Nasmerujte frontu odosielania na vyhradenú frontu a spustite pre ňu worker:

CAMPAIGNS_SENDING_QUEUE=campaigns
php artisan queue:work --queue=campaigns

Dávka Laravelu zaraďuje všetky svoje joby do vlastnej fronty, preto sa dávka otvára na sending-queue (option DefaultSendingQueue) a každý job doručenia beží tam — zabezpečte, aby ju počúval worker.

Zlyhania a zrušenie

  • Zlyhania sú povolené: jeden problémový príjemca nikdy nezastaví ostatných a kampaň sa dá stále zrušiť.
  • Doručenie zlyhá, keď ho job zaznamená ako neúspešné — dodávané joby zachytia každú výnimku a urobia to — alebo keď zlyhá samotný job (vyhodí výnimku, vyprší mu čas, minie pokusy). V oboch prípadoch sa započíta raz, ako neúspešné, nikdy ako odoslané.
  • Keď dobehnú všetky joby, kampaň je Completed — aj s neúspešnými príjemcami — alebo Failed, ak ani jedno doručenie neprešlo. Neúspešné doručenia nájdete cez progress->failed, udalosť RecipientFailed alebo dopytom na príjemcov.
  • cancel() zruší dávku; joby vo fronte skontrolujú $this->batch()?->cancelled() a skončia bez odoslania. Zrušená kampaň zostane v stave Canceled, aj keď jej dávka dobehne.

Úložisko v pamäti a workery

Úložisko v pamäti žije počas jedného requestu, konzolového príkazu alebo jobu vo fronte — kontajner ho registruje ako scoped, takže dlho bežiaci worker v ňom kampane nehromadí. Ďalší request či job a každý queue worker začínajú s prázdnym úložiskom: doručenia aj udalosti vo workeri prebehnú, no priebeh sa sleduje len tam, kde kampaň vznikla. Keď musia byť stav a priebeh viditeľné naprieč requestmi a procesmi, použite databázové úložisko.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.