Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Laravel - Chạy công việc theo trình tự

Những gì bạn đang tìm kiếm, như bạn đề cập trong câu hỏi của mình, là chuỗi công việc.

Từ tài liệu Laravel

Chuỗi công việc cho phép bạn chỉ định một danh sách các công việc được xếp hàng đợi sẽ được chạy theo trình tự. Nếu một công việc trong chuỗi không thành công, các công việc còn lại sẽ không được chạy. Để thực hiện một chuỗi công việc đã được xếp hàng đợi, bạn có thể sử dụng phương thức withChain trên bất kỳ công việc nào có thể điều chỉnh được của mình:

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

Vì vậy, trong ví dụ của bạn ở trên

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

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

Sẽ cho kết quả như mong đợi!

Cập nhật

Nếu bạn không muốn sử dụng một công việc ban đầu để xâu chuỗi từ (như được hiển thị trong ví dụ tài liệu ở trên), bạn có thể tạo một Job trống lớp có use Dispatchable; . Sau đó, bạn có thể sử dụng ví dụ của tôi ở trên



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis TimeSeries có phải là công cụ phù hợp để nắm bắt các cây nến trong giá cổ phiếu không

  2. Làm thế nào để sử dụng redis '`DUMP` và` RESTORE` (ngoại tuyến)?

  3. Cách hiệu quả để ánh xạ dữ liệu từ Redis

  4. Các mẫu thiết kế JavaScript - Đối phó với sự không đồng bộ không mong muốn

  5. Làm thế nào để kết nối an toàn với Heroku Redis thông qua dòng lệnh?