Hi Min, I think you could extend ZMQ_ROUTER_MANDATORY to this. Mandatory means the message must be deliverable, or you get an error.
-Pieter On Thu, Dec 6, 2012 at 4:36 AM, Yu Dongmin <[email protected]> wrote: > Hello, > > As we all know, ROUTER drop messages when 1) a counter part doesn't exist and > 2 ) a counter part is full. > > In case of 1) we can catch the case by setting ZMQ_ROUTER_MANDATORY. But in > case of 2) ROUTER drop message silently and the send returns 0. > > > Server side ROUTER-DEALER pattern including the proxy (a.k.a device) is hard > to use as I need another treatment at client side. > > To make a client simple and avoid the second case of silent dropping, I have > to increase the HWM or unlimited but it could blow memory. > > > We might need an another option to detect second case. By detecting the case, > ROUTER user can decide whether he drop it silently (default action), resend > it or wait the counter part is ready. > > > My idea is (please ignore option names, they are just examples) in the case > of 2) > > if ZMQ_ROUTER_WAIT set router.xsend returns -1 with EAGAIN so system can wait > the counter part is ready > Otherwise returns -1 as user can do his treatment. > > Thanks > Min > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev _______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
