thắc mắc MutilThread or Cron Job

  • Người tạo chủ đề Người tạo chủ đề vi_tieu_bao
  • Ngày bắt đầu Ngày bắt đầu

vi_tieu_bao

Senior Member
chào các bác,

cho em hỏi tư vấn cho trường hợp của e như bên dưới. e xin cảm ơn trước.

hiện e đang chạy script bằng NodeJs và có 3 cái web socket (e goi tắt là W) chay cùng lúc. 3 con W này có dùng qua lại data của nhau, kiểu như W1 bật true thì script trên W2 chạy ko thì dừng.

vấn đền e đang để ý thấy là trường hợp có 1 con W có data đang chạy script thì con W2 có event tới console log phát thì W1 bị trễ tầm 10 ms -20 ms hoăc hơn.

E muốn hỏi là do Nodejs nó bị thế hay e bị cảm giác thế thôi. nếu có bị thì e định làm cronjob mỗi con 1 job bằng PM2, data thì lấy ghi chung ở mongodb hoăc local db thì có hết bị ko ạ? hay phải chuyển sang mutilthread của Nodejs mới hết hoặc phải qua Go lang/Rust/Java

Thanks
 
chào các bác,

cho em hỏi tư vấn cho trường hợp của e như bên dưới. e xin cảm ơn trước.

hiện e đang chạy script bằng NodeJs và có 3 cái web socket (e goi tắt là W) chay cùng lúc. 3 con W này có dùng qua lại data của nhau, kiểu như W1 bật true thì script trên W2 chạy ko thì dừng.

vấn đền e đang để ý thấy là trường hợp có 1 con W có data đang chạy script thì con W2 có event tới console log phát thì W1 bị trễ tầm 10 ms -20 ms hoăc hơn.

E muốn hỏi là do Nodejs nó bị thế hay e bị cảm giác thế thôi. nếu có bị thì e định làm cronjob mỗi con 1 job bằng PM2, data thì lấy ghi chung ở mongodb hoăc local db thì có hết bị ko ạ? hay phải chuyển sang mutilthread của Nodejs mới hết hoặc phải qua Go lang/Rust/Java

Thanks
Đọc nhức đầu thiệt
chấm phẩy gì đâu không thấy gì hết

via theNEXTvoz for iPhone
 
chào các bác,

cho em hỏi tư vấn cho trường hợp của e như bên dưới. e xin cảm ơn trước.

hiện e đang chạy script bằng NodeJs và có 3 cái web socket (e goi tắt là W) chay cùng lúc. 3 con W này có dùng qua lại data của nhau, kiểu như W1 bật true thì script trên W2 chạy ko thì dừng.

vấn đền e đang để ý thấy là trường hợp có 1 con W có data đang chạy script thì con W2 có event tới console log phát thì W1 bị trễ tầm 10 ms -20 ms hoăc hơn.

E muốn hỏi là do Nodejs nó bị thế hay e bị cảm giác thế thôi. nếu có bị thì e định làm cronjob mỗi con 1 job bằng PM2, data thì lấy ghi chung ở mongodb hoăc local db thì có hết bị ko ạ? hay phải chuyển sang mutilthread của Nodejs mới hết hoặc phải qua Go lang/Rust/Java

Thanks

Bác cần nắm rõ vấn đề đang bị đã chứ có đừng có pick solution sớm. Giờ bác cần tìm hiểu root-cause của cái issue đã.

1. Script bác chạy là script gì, nó là 1 function js code, hay là 1 script (kiểu python, bash, etc) bên ngoài và trigger lên chạy qua 1 process khác (spawn process khác). Có cái script nào là extensive function ko, cái này nên console hay benchmark gì đó. Thì nếu benchmark ra script chạy lâu, nắm cái main-thread quá lâu thì issue ở script. Lúc này bác nên kiếm cách xử lí, hoặc chạy nó ở ngoài cái main-thread, để main-thread handle IO của socket thôi.

2. W1 bị trễ 10-20ms là so sánh với cái gì (khi có w2 có data hay ko), hay là so sánh với system/backend nào khác. Ở system khác nó có vậy không.

3. NodeJS multiple-thread là gì, theo e hiểu thì nó có 1 thread để xử lí thôi, quan trọng nó có cơ chế event-loop. Nên mấy cviec kiểu I/O bound như handle request data sẽ làm rất tốt và không lãng phí thời gian để đợi. Nên có 3 cái websockets chắc nó cũng handle tốt thôi.

4. Data ở memory nó sẽ nhanh hơn là việc lưu ở 1 external db nên đưa xuống DB trừ khi cần reliable, persistent, etc thì hẵng làm.

Sau khi bác phân tích hết, biết bottle neck là cái script hay là việc đọc data bị chậm thì hẵng tính tiếp, nhìn chung chắc là do cái script chạy nên việc handle I/O data sẽ bị dừng xử lí 1 xíu.
 

Thống kê chủ đề

Ngày tạo
vi_tieu_bao,
Người trả lời cuối
drmundo,
Trả lời
3
Lượt xem
912
Quay lại
Lên đầu trang