I had asked out on irc about this problem and "charliebone" made me realise that I should directly queue the messages on the socket itself.
On Thu, Jul 3, 2014 at 9:44 PM, MinRK <[email protected]> wrote: > Why not just queue sends directly? What is the goal of the Queue? For > threadsafety, you should use the `add_callback` functionality of IOLoop: > > loop = IOLoop.instance() > > loop.add_callback(lambda : stream.send_multipart(msg)) > > Then you don't need any polling, it will just send messages when there are > messages to be sent. > However, I don't get this part. How is it different than directly invoking stream.send_multipart(msg) ? > > -MinRK > > > > On Thu, Jul 3, 2014 at 7:07 AM, KIU Shueng Chuan <[email protected]> > wrote: > >> How about replacing the Queue with zmq sockets? Then you could just add >> the "consumer" socket to the event loop. >> On 3 Jul 2014 16:15, "Indradhanush Gupta" <[email protected]> >> wrote: >> >>> Hello, >>> >>> I am using a PeriodicCallback in pyzmq, that checks a python Queue for >>> data that needs to be sent. >>> >>> It looks like this - >>> >>> self.to_client = Queue.Queue() >>> >>> def check_to_client(self): >>> while not self.to_client.empty(): >>> data = self.to_client.get() >>> self.frontend.send(data) >>> >>> So, going by the current callback definition, it sends each element of >>> the Queue until it is empty. I am wondering if this is good. It appears, >>> that this callback might block if the Queue is very large. >>> >>> I have two approaches in mind. >>> >>> 1. Send n items, then return, where n = a number that will not block. So >>> is there an idea on what might be a good number? >>> >>> 2. Use a timeout on check_to_client, such that it runs for n >>> milliseconds and returns. Again what would be a good enough number for >>> this? But also, is this even possible? >>> >>> Any other solution that someone has used before? This appears to be a >>> very common problem. >>> >>> Thanks, >>> -- >>> Indradhanush Gupta >>> >>> >>> _______________________________________________ >>> 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 >> >> > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > -- Indradhanush Gupta
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
