Redis
 sql >> база данни >  >> NoSQL >> Redis

Laravel - Последователно изпълнение на задачи

Това, което търсите, както споменавате във вашия въпрос, е верижна работа.

От документите на Laravel

Веригата на задания ви позволява да зададете списък със задачи на опашка, които трябва да се изпълняват последователно. Ако едно задание в последователността се провали, останалите задачи няма да бъдат изпълнени. За да изпълните верига от задачи на опашка, можете да използвате метода withChain за всяка от вашите задачи за изпращане:

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

Така че във вашия пример по-горе

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

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

Трябва да даде очаквания резултат!

Актуализиране

Ако не искате да използвате първоначално задание за верига (както е показано в примера за документация по-горе), трябва да можете да направите празно Job клас, който има use Dispatchable; . Тогава можете да използвате моя пример по-горе



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Задаване на динамичен път в redis.conf с помощта на променливата Environment

  2. Не може да се свърже със сървъра Redis от Docker контейнера

  3. Получавате грешка при връзката, когато използвате redis-trib.rb за създаване на клъстер?

  4. Свързване с RedisToGo чрез Node.JS

  5. Redis - Сортиран набор, намиране на елемент по стойност на свойството