@Jens that might be a useful pattern that you could consider contributing to the cookbook (https://github.com/zeromq/cookbook) or the zguide.
Am 21.11.2016 08:38 schrieb "Auer, Jens" <[email protected]>: > In addition, it is usually better to read more than one message when poll > signals activity on a socket. This reduces the number of poll calls, and > these are quite expensive. > > > > Cheers, > > Jens > > > > *--* > > *Dr. Jens Auer *| CGI | Software Engineer > > CGI Deutschland Ltd. & Co. KG > Rheinstraße 95 | 64295 Darmstadt | Germany > > T: +49 6151 36860 154 > > [email protected] > > Unsere Pflichtangaben gemäß § 35a GmbHG / §§ 161, 125a HGB finden Sie > unter de.cgi.com/pflichtangaben. > > > > CONFIDENTIALITY NOTICE: Proprietary/Confidential information belonging to > CGI Group Inc. and its affiliates may be contained in this message. If you > are not a recipient indicated or intended in this message (or responsible > for delivery of this message to such person), or you think for any reason > that this message may have been addressed to you in error, you may not use > or copy or deliver this message to anyone else. In such case, you should > destroy this message and are asked to notify the sender by reply e-mail. > > > > *From:* zeromq-dev [mailto:[email protected]] *On > Behalf Of *Mazzaroth M. > *Sent:* 20 November 2016 23:48 > *To:* ZeroMQ development list > *Subject:* Re: [zeromq-dev] Router/Dealer configuration monopolizes CPU > while idle > > > > yes I think know what you're driving at. Didn't know None/-1 was an option > for poll(). Since I know the root cause I will tinker and see if I can have > it -1 wait on the poller for the router. I guess what you're saying is when > the Router receives something I can drop out of the nested While and poll() > on the PULL socket. > > > > On Sun, Nov 20, 2016 at 1:38 PM, Michel Pelletier < > [email protected]> wrote: > > I just did a brief scan of your code, but it looks like your controller is > using poll(0) in two places in a loop. poll(0) will return immediately and > your code will busy loop around the 'while True' if idle. I think a better > approach would be to register the router socket with the poller and use > poll(None) always processing the router socket messages first. > > > > -Michel > > > > On Sun, Nov 20, 2016 at 9:41 AM, Mazzaroth M. <[email protected]> > wrote: > > I have a Router/Dealer setup which is polling on a PULL socket to listen > for jobs. It forks 10 Dealer/Worker processes. When I run it with the > script below it will use about 20% cpu after about 5 min and then about a > minute later use 100% cpu on a ubuntu 16.04 setup. This is all while idle. > I'm not sure of the root cause. > > > Controller > https://gist.github.com/mazz/f50affc65bbf04a6140e257354b16898 > > Worker > https://gist.github.com/mazz/34ba3d98296bf5d013037b6ad48b6cb6 > > import sys > from pushpull.models import homedirs > > sys.path[0:0] = homedirs > import actors.controller > > if __name__ == '__main__': > sys.exit(actors.controller.run()) > > > > _______________________________________________ > 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 >
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
