[zeromq-dev] How to properly close a socket and HWMRECV

Martin Sustrik sustrik at 250bpm.com
Mon Jul 11 07:39:58 CEST 2011


On 07/08/2011 12:17 PM, Antonio Teixeira wrote:

> But i would like to set HWM on my DOWNSTREAM ( At the Client side not
> the Broker ) socket ,  looking at the source i have noticed 2 values :
> zmq.HWM and zmq.RCVHWM

Which version are you using? IIRC there's HWM in 2.1 and SNDHWM/RCVHWM 
in 3.0.

> My objective is the following :
> On a 2 core machine , broker sends one Task
> it will occupy Process 1 and it takes 30 minutes to end this task.
>
> So we have one more working slot , now broker sends another task , the
> HWM should be reached now and ZMQ ignores further Work from Broker so it
> can overflow to other standby servers,
> This new task will occupy Process 2.
>
> Now Process 1 ends  and the Task Worker resets into network_socket.recv()
> The HWM should now allow one more task to flow trough.
>
> Is this the correct way or i'm messing something here ? Should i use HWM
> or RECVHWM. ?

What you need is synchronous retrieval of requests. Use REQ/REP model 
for workers to ask for more work.

Martin



More information about the zeromq-dev mailing list