Làm thế nào bạn có thể có một biến toàn cục giữa t...
Làm thế nào bạn có thể có một biến toàn cục giữa t...
Trong Node.js, mỗi worker trong một cluster chạy trong một tiến trình riêng biệt; do đó, chúng không chia sẻ trực tiếp bộ nhớ hoặc biến với nhau. Tuy nhiên, có một số cách để chia sẻ dữ liệu hoặc trạng thái giữa các worker:
Sử dụng Biến Môi Trường (Environment Variables) khi Tạo Worker: Khi tạo một worker mới bằng cluster.fork()
, bạn có thể truyền các biến môi trường tùy chỉnh vào worker. Các biến này có thể được sử dụng như các biến toàn cục giữa các worker. Tuy nhiên, phương pháp này chỉ phù hợp cho dữ liệu không thay đổi sau khi worker được tạo, vì mỗi worker sẽ có bản sao riêng của biến môi trường và thay đổi trong một worker sẽ không ảnh hưởng đến các worker khác.
// Trên master
cluster.fork({ GLOBAL_VAR: 'value' });
// Trong worker
const globalVar = process.env.GLOBAL_VAR;
Sử dụng Cơ Sở Dữ Liệu hoặc Hệ Thống Lưu Trữ Bên Ngoài: Một cách khác để chia sẻ dữ liệu giữa các worker là sử dụng một cơ sở dữ liệu hoặc hệ thống lưu trữ bên ngoài như Redis, MongoDB, hoặc bất kỳ hệ thống lưu trữ nào khác. Các worker có thể đọc và ghi vào cơ s...
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào