[Twisted-Python] Python multiprocessing and Twisted stopService - success story
Tom Sheffler
tom.sheffler at gmail.com
Wed Jan 18 10:39:41 MST 2012
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20120118/7dc82331/attachment-0001.html>
More information about the Twisted-Python
mailing list