We are using Py2.6's multiprocessing with Twisted and things are working
nicely.  I thought I'd pass on something that seems to work pretty well.
 Comments welcome.

I am using multiprocessing to spawn long-running worker processes as
children of Twisted.  When Twisted is killed, I want the children to be
unceremoniously killed as well.  I looked into signal handlers, but
creating a service that kills the child processes ended up being simpler
and is working well with twistd daemonization.

class MultiprocessingStopService(Service):

    def stopService(self):
        import multiprocessing
        for p in multiprocessing.active_children():
            p.terminate()
        Service.stopService(self)

and in my main service maker:

        s = MultiService()
    stopper  = MultiprocessingStopService()
    stopper.setServiceParent(s)

Perhaps this will be helpful to someone.

-T
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to