sql >> Database teknologi >  >> NoSQL >> Redis

Laravel - Løbende job i rækkefølge

Det du leder efter, som du nævner i dit spørgsmål, er job chaining.

Fra Laravel-dokumenterne

Jobkædering giver dig mulighed for at angive en liste over job i kø, der skal køres i rækkefølge. Hvis et job i sekvensen mislykkes, vil resten af ​​jobs ikke blive kørt. For at udføre en jobkæde i kø kan du bruge withChain-metoden på ethvert af dine afsendelsesjob:

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

Så i dit eksempel ovenfor

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

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

Skulle give det forventede resultat!

Opdater

Hvis du ikke ønsker at bruge et indledende job at kæde fra (som vist i dokumentationseksemplet ovenfor), bør du være i stand til at lave et tomt Job klasse, der har use Dispatchable; . Så kan du bruge mit eksempel ovenfor



  1. MongoDB Aggregation med summen af ​​matrixværdier

  2. Om char b-præfiks i Python3.4.1-klienten opret forbindelse til redis

  3. MongoDB Vis nuværende bruger

  4. BadValue Ugyldig eller ingen bruger-lokalitet angivet. Sørg for, at miljøvariablerne LANG og/eller LC_* er indstillet korrekt