Xử lý đa tác vụ cùng lúc trong PHP - Laravel
Chào mọi người, em có 1 cái task nhỏ là đẩy (post) sản phẩm lên 1 trang thương mại điện tử thông qua API. Nếu thực hiện theo cách thủ công thì nó sẽ thực hiện tuần tự lần lượt từ sản phẩm 1 đến N sản phẩm. Trung bình đẩy 1 sản phẩm lên mất khoảng 5-10s tùy điều kiện. Nếu cùng thời điểm "có nhiều người up" và "số lượng sản phẩm up lớn khoảng 100" thì thời gian sẽ rất lâu. Không biết có cách nào đó để nó chạy song song với nhau thay vì phải đợi lần lượt không ạ ?. Mọi người đã từng làm, từng xử lý những task tương tự như vậy thì chỉ em với. Cảm ơn mọi người.
2 CÂU TRẢ LỜI
bạn có thể mô tả chi tiết hơn cho mình được không ?
job sinh ra để giải quyết công việc mất nhiều thời gian ý cậu. các công việc đấy sẽ được chạy ẩn để tăng trải nghiệm của người dùng đấy cậu. cậu thử đọc qua nó xem ntn. https://laravel.com/docs/8.x/queues
Bạn thử viết logic đẩy mỗi sản phẩm vào trong Job sau đó dispatch job đó vào queue. Và dựng nhiều các Queue Worker lên để chúng xử lý đồng thời các job trong queue. Ví dụ bạn bật 5 queue worker lên thì trong cùng 1 thời điểm ứng dụng của bạn có thể xử lý được 5 job.
Cảm ơn bạn nhé, mình sẽ tìm hiểu và áp dụng thử.