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
