On Jun 12, 2013, at 4:31 PM, Glyph wrote: > I'm not sure what "autoload" is. I am assuming it's some kind of > auto-re-loading technology though.
The earlier discussions talked about Django's autoload, which reloads the entire process on a config file change. > You do want to re-start your process. What you're diagnosing is some weird, > unknown thread/process interaction and unless you get a clean slate, you > don't know what is happening. > > You may not want to do so immediately, though, since, as you say: Correct on both accounts. I don't want to kill the current process while it's talking to an API. I just want it to not talk to any additional APIs, then kill the process a bit later. >> I'd like them to finish , and shutdown/restart N seconds later ( assuming >> that I wouldn't be able to fully shutdown because of an issue with a locked >> thread ). > > The issue is with letting them finish. In order to accomplish this, you > should write IService implementations that have stopService methods that, > when called, will wait for any operations in flight associated with that > service. > > Once everything is quiesced, you can re-exec ([sys.executable] + sys.argv) > and that ought to result in the same process starting up again. If you've > done the appropriate thing and made all your stopService methods wait for > their operations to complete, then waiting for them all to complete is just > putting them all into a MultiService, calling stopService() on that > MultiService, and adding a callback/errback to the Deferred it returns which > calls os.exec. ok great ! I'll look into StopService and IService tomorrow ! thanks a ton. that's pretty much what i want/need.
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python