Avatar
0
Nguyễn Hiếu Beginner
[BadQuestionBecauseCodeInImage]Pipeline fade-out fade-in
Bài này tính tổng bình phương của 1 dãy số, thay vì lặp qua hết dãy thì sẽ chia thành nhiều routine để tính cho nhanh nếu nhưu chuỗi dài. Tuy nhiên chỗ hàm generatePipeline em chưa hiểu lắm ạ. Nó đẩy dãy số đó vào channel, sau đó close mà chỗ return lại out em chưa hiểu ạ
  • Answer
question
Remain: 5
1 Answer
Avatar
ducnt114 Beginner
ducnt114 Beginner
em để ý là trong hàm generatePipeline tạo 1 channel out không có buffer, nên khi muốn đẩy item vào channel thì sẽ bị block cho đến khi có routine khác lấy item đó ra xử lý. Cho nên lệnh close(out)sẽ chỉ close channel khi các item trong channel out đã được xử lý hết.
  • 0
  • Reply
anh ơi, em có bài tập kiểu khi run server lên thì load dữ liệu lưu xún db, dữ liêu động em get từ api, tuy nhiên số lượng lớn quá nên mỗi lần em run thì chờ hơi lâu, em dùng mysql insert từng record vào. Nên cho e hỏi có cách nào làm nhanh hơn kh ạ  –  Nguyễn Hiếu 1657510082000
để thực hiện nhanh hơn thì em tìm cách chạy song song các viêc/ tác vụ nào có thể chạy song song được, bằng cách là tạo nhiều routine ra cho chạy đồng thời, ví dụ là lúc get data hoặc lưu data xuống database, em chia thành các batch cho mỗi routine chạy riêng, ví dụ lưu từ row 1-10 thì chạy ở routine 1, row 11-20 chạy ở routine 2...  –  ducnt114 1657510275000
ngoài ra thì lúc lưu xuống database em có thể lưu theo batch, mỗi lần gửi lệnh insert thì gửi lưu 10-20 row một lúc, sẽ tối ưu thêm được một chút thay vì gửi từng lệnh insert cho mỗi bản ghi mới.  –  ducnt114 1657510331000
dạ anh có bài docs hay hướng dẫn cụ thể hơn kh ạ, em ms học nên cx kh rõ hương để triển khai. Em có ý tưởng dùng cái channel chia nhiều routine như cái fade in fade out ở trên  –  Nguyễn Hiếu 1657529367000