From: Michael E. <men...@ka...> - 2002-12-04 19:15:34
|
Is there a way to handle cleanup of application specific resources when a session is about to expire? Let's say that I have a database connection stored in a session (obviously I would use a pooled object for this but this just an example) and I wanted to close the connection before the object was removed from the session. Is there a way to do this? Thanks Mike |
From: Matt F. <ma...@da...> - 2002-12-05 17:39:34
|
Michael Engelhart wrote: > Is there a way to handle cleanup of application specific resources > when a session is about to expire? We're doing something similar to write log data when a session is over... in the __init__.py of an application, you can do something like this: __________________________________ from MiscUtils.MixIn import MixIn from WebKit.Session import Session class SessionMixIn: def expiring(self): '''put stuff you want to happen at session expiration here...''' pass # Now inject the methods from SessionMixIn into Session MixIn(Session, SessionMixIn) __________________________________ Good luck. |
From: Michael E. <men...@ka...> - 2002-12-05 18:10:24
|
Thanks Matt Good idea. I hadn't looked into the MixIn class. I'll check that out. Maybe that's a better solution then mucking around in the Session class BTW, it appears that expiring() doesn't get called on application shutdown. Any ideas on what the deal is with that? I saw that storeAllSessions() is called but not expiring()... Mike On Thursday, December 5, 2002, at 12:40 PM, Matt Feifarek wrote: > We're doing something similar to write log data when a session is > over... in the __init__.py of an application, you can do something > like this: > > __________________________________ > > from MiscUtils.MixIn import MixIn > from WebKit.Session import Session > > class SessionMixIn: > def expiring(self): > '''put stuff you want to happen at session expiration here...''' > pass > > > > # Now inject the methods from SessionMixIn into Session > MixIn(Session, SessionMixIn) > __________________________________ > > Good luck. |
From: Matt F. <ma...@da...> - 2002-12-06 16:53:27
|
Michael Engelhart wrote: > BTW, it appears that expiring() doesn't get called on application > shutdown. Any ideas on what the deal is with that? I think that the theory is that you could restart the application, and it can pick up the sessions and go, without expiring them. If they actually are expired (too old) they will, but just stopping the server (perhaps in a restart situation) will keep session data alive. I think it's a good idea, but since "Dynamic" sessions haven't been working for a while, it's probably moot. In any case, you could MixIn your code in any of the relevant methods; expiring is just what we use. Good luck. |