Yêu cầu thg 7 27, 2021 9:39 SA 125 1 2
  • 125 1 2
+2

Xử lý đa tác vụ cùng lúc trong PHP - Laravel

Chia sẻ
  • 125 1 2

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


Đã trả lời thg 7 27, 2021 9:41 SA
+1

cậu thử tìm hiểu job xem có giúp ích được không

Chia sẻ
Avatar Nguyễn Văn Hữu @huunguyenk12
thg 7 27, 2021 9:45 SA

bạn có thể mô tả chi tiết hơn cho mình được không ?

thg 7 27, 2021 9:53 SA

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

Đã trả lời thg 7 27, 2021 9:44 SA
+1

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.

Chia sẻ
Avatar Nguyễn Văn Hữu @huunguyenk12
thg 7 27, 2021 9:46 SA

Cảm ơn bạn nhé, mình sẽ tìm hiểu và áp dụng thử.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí