2010-09-28 26 views
7

Trong ổ cắm REQ/REP, nếu ổ cắm gửi yêu cầu đến nút chết (bị ngắt kết nối), thông báo không được gửi và vẫn nằm trong hàng đợi tin nhắn chiếm bộ nhớ. Làm thế nào có thể làm sạch những tin nhắn chưa được gửi đi này (giả sử, các thư nằm trong hàng đợi trong hơn 1 phút)?Quyết định thiết kế ZeroMQ

Cảm ơn!

Trả lời

3

Bạn có thể muốn thiết lập các tham số tùy chọn ZMQ_LINGER:

Tùy chọn ZMQ_LINGER trách nhiệm thiết lập các nán lại khoảng thời gian cho các quy định socket. Thời gian nán xác định bao lâu cấp phát thông điệp mà có chưa được gửi đến một peer sẽ nán lại trong bộ nhớ sau khi một ổ cắm được đóng với zmq_close (3), và tiếp tục ảnh hưởng đến chấm dứt bối cảnh của ổ cắm với zmq_term (3).

... trong đó giá trị dương sẽ đặt thời gian tối đa cho thư bị chặn trong hàng đợi.

Xem http://api.zeromq.org/2-1-1:zmq-setsockopt

+0

Không chỉ áp dụng cho các ổ cắm địa phương (mà chưa bị đóng cửa)? Câu hỏi đặt ra là khi đồng nghiệp từ xa chấm dứt - nhưng ổ cắm cục bộ vẫn còn sống, chắc chắn? – DNA

Các vấn đề liên quan