Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Laravel - Uruchamianie zadań w sekwencji

To, czego szukasz, jak wspomniałeś w swoim pytaniu, to łańcuch pracy.

Z dokumentacji Laravela

Tworzenie łańcucha zadań umożliwia określenie listy zadań w kolejce, które powinny być uruchamiane po kolei. Jeśli jedno zadanie w sekwencji nie powiedzie się, pozostałe zadania nie zostaną uruchomione. Aby wykonać łańcuch zadań w kolejce, możesz użyć metody withChain na dowolnym z zadań wysyłalnych:

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

Tak więc w powyższym przykładzie

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

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

Powinien dać oczekiwany rezultat!

Aktualizacja

Jeśli nie chcesz używać początkowego zadania do połączenia (jak pokazano w powyższym przykładzie dokumentacji), powinieneś być w stanie utworzyć puste Job klasa, która ma use Dispatchable; . Następnie możesz użyć mojego przykładu powyżej



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak oddzielić bazę danych redis dla tych samych dwóch aplikacji w node.js

  2. Aby rozpocząć ładowanie YCSB z włączoną opcją klastra dla REDIS

  3. problem z uwierzytelnianiem w prywatnym kanale laravel i laravel-echo-server

  4. Jak korzystać z redis' „ZRZUT” i „PRZYWRACANIE” (offline)?

  5. Przechowywanie zagnieżdżonych obiektów JavaScript w redis - NodeJS