sql >> Databasteknik >  >> NoSQL >> Redis

Laravel - Löpande jobb i sekvens

Det du letar efter, som du nämner i din fråga, är jobbkedja.

Från Laravel-dokumenten

Jobbkedja låter dig ange en lista över köade jobb som ska köras i sekvens. Om ett jobb i sekvensen misslyckas kommer resten av jobben inte att köras. För att utföra en köad jobbkedja kan du använda withChain-metoden på vilket som helst av dina sändningsbara jobb:

ProcessPodcast::withChain([
    new OptimizePodcast,
    new ReleasePodcast
])->dispatch();

Så i ditt exempel ovan

$mailJobs = Subscriptions::all()
    ->map(function($subscription) {
        return new SendMailJob($subscription);
    });

Job::withChain($mailJobs)->dispatch()

Bör ge det förväntade resultatet!

Uppdatera

Om du inte vill använda ett första jobb att kedja från (som visas i dokumentationsexemplet ovan) bör du kunna göra ett tomt Job klass som har use Dispatchable; . Då kan du använda mitt exempel ovan



  1. Allvarligt fel:Oupptäckt undantag 'RedisException' med meddelandet 'Redis-server gick bort'

  2. Så här gör du:Hantera HBase-data via Hue

  3. Så här gör du:Använd Apache HBase REST-gränssnitt, del 1

  4. Mongodb uppdaterar djupt kapslade underdokument