zeromq.node
zeromq.node copied to clipboard
Client losing messages with (modified) example
Running this will over time produce discrepancies between what is sent by producer and what is received by the worker. Is this expected? Is there a way to see what the cause is? worker not ready? buffer overflow? producer not sending data?
producer.js
var zmq = require('zmq')
var sock = zmq.socket('push')
sock.bindSync('tcp://127.0.0.1:3000')
console.log('Producer bound to 3000')
var count = 0
setInterval(function() {
count++
if (count % 100000 === 0) {
console.log('sending work' + count)
}
sock.send('' + count)
})
worker.js
var zmq = require('zmq')
var sock = zmq.socket('pull')
sock.connect('tcp://127.0.0.1:3000')
console.log('work connected to port 3000')
var messagesReceivedCount = 0
sock.on('message', function(msg) {
messagesReceivedCount++
var producerCount = +msg
console.log(messagesReceivedCount, producerCount, (producerCount - messagesReceivedCount))
})
setInterval
with no interval?
It's just trying to send messages as quickly as it can. Similar to a while(true)
.