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

Reply via email to