[Twisted-Python] handling CTRL-C
Hi, i know twisted already manage CTRL-C keystroke, but i'd like to add some other action when CTRL-C is pressed. I've implemented a perspective broker server, which have a DeferredQueue and a lot of elements in it. I'd like to write to a file all those elements before the program shuts down. Is there a way to handle this kind of situation? Thanks in advance Fabrizio
On Thu, 2009-04-30 at 14:44 +0200, Fabrizio Mancini wrote:
Hi, i know twisted already manage CTRL-C keystroke, but i'd like to add some other action when CTRL-C is pressed. I've implemented a perspective broker server, which have a DeferredQueue and a lot of elements in it. I'd like to write to a file all those elements before the program shuts down. Is there a way to handle this kind of situation?
def cleanupFunction(): for item in queue: item.saveToDisk() reactor.addSystemEventTrigger("before", "shutdown", cleanupFunction) The function can return a Deferred in order to delay shutdown during cleanup.
On Thu, Apr 30, 2009 at 3:04 PM, Itamar Shtull-Trauring <itamar@itamarst.org> wrote:
On Thu, 2009-04-30 at 14:44 +0200, Fabrizio Mancini wrote:
Hi, i know twisted already manage CTRL-C keystroke, but i'd like to add some other action when CTRL-C is pressed. I've implemented a perspective broker server, which have a DeferredQueue and a lot of elements in it. I'd like to write to a file all those elements before the program shuts down. Is there a way to handle this kind of situation?
def cleanupFunction(): for item in queue: item.saveToDisk() reactor.addSystemEventTrigger("before", "shutdown", cleanupFunction)
The function can return a Deferred in order to delay shutdown during cleanup.
WOW, that's amazing!!! thank you very very much! Twisted is fantastic!!! Fabrizio
On Thu, 30 Apr 2009 14:44:08 +0200, Fabrizio Mancini <mr.file@gmail.com> wrote:
Hi, i know twisted already manage CTRL-C keystroke, but i'd like to add some other action when CTRL-C is pressed. I've implemented a perspective broker server, which have a DeferredQueue and a lot of elements in it. I'd like to write to a file all those elements before the program shuts down. Is there a way to handle this kind of situation?
The best way is to have an IService provider with a stopService method which does whatever shutdown cleanup you want done, possibly returning a Deferred which doesn't fire until it has finished. However your app is shut down, this will cause your cleanup code to run. Jean-Paul
The best way is to have an IService provider with a stopService method which does whatever shutdown cleanup you want done, possibly returning a Deferred which doesn't fire until it has finished. However your app is shut down, this will cause your cleanup code to run.
Thank you, i will study how to implement this in my app. fabrizio
participants (3)
-
Fabrizio Mancini
-
Itamar Shtull-Trauring
-
Jean-Paul Calderone