Jason, Thanks for your thoughts. I was hoping someone with more Python experience had built something I could work off of, but if my work load eases up in the next few days I'll probably take a crack at putting together a caching mechanism myself. My inclination would be to use a dictionary with global scope for the actual cache, matching cache keys with a tupples of expiration times and html strings and then periodically loop through and remove expired items. Is this a good way to structure things? I'd appreciate any advice that you have. - Dan ----- Original Message ----- From: "Jason Sibre"To: Sent: Tuesday, August 26, 2003 9:08 PM Subject: RE: [Quixote-users] Caching? > > Is there an equivalent caching module for Quixote? > > > > Also, much of what the new app will be doing is finding URLs in a > > database > > based on the querystring and then sending redirects to the client. > > Obviously, I'd like to cache the key / URL pairs after they are used the > > first time. Is there an easy way to do this with Quixote? > > > Dan, > > While there isn't (to my knowledge) a caching module per se in Quixote, it > would be very easy to implement, and there are a number of ways it could be > done. The first that comes to mind would be sub-classing the Publisher > class to implement a CachingPublisher, which, upon seeing a familiar URL > could return the cached version of the data without even going through the > URL traversal stage. Another would be to subclass Publisher to make it call > a caching proxy when it's ready to publish an object/namespace/function/etc, > and let the proxy have a crack at serving a cached version, or fetching the > real thing. I'm sure there are lots of ways to do this, (probably two or > three for each person using Quixote!) but I think most or all of high > performance ones would involve subclassing the Publisher. I don't know how > familiar you are with the source, (but I'm assuming you aren't very familiar > with it) but this is really an easy proposition. > > On your second point, if you mean something like > "http://server.org/goto?url=http://somedocserver/doc.txt" gets looked up to > be routed to some other url, this would be easy to do, results could be > cacheable, and you wouldn't have to modify the Quixote framework in any way. > > Of course, you'd have to implement the caching mechanism yourself, (it > wouldn't magically happen as I suspect it does in .NET), and you'd have to > deal with issues like cache expiry, cache size limitations, and the like > when you come up with your implementation. Also, caching would be useless > (performance wise) if the Quixote process isn't some form of long running > process (FastCGI, SCGI, running standalone as Medusa, or Twisted, etc...) > but I'm guessing that's obvious... Just wanted to throw it out there in > case it isn't. I don't know your environment, so I don't know how tricky > that might be to pull off. (Having worked in MS shops before, I know > sometimes it's impossible to get admins to let you set up 'crazy things' > (anything not from Redmond) on 'their' servers!) > > Hope that helps, and if not, stick around, I'm sure some other folks with > have interesting comments on this. > > Jason Sibre > > > _______________________________________________ > Quixote-users mailing list > Quixote-users@mems-exchange.org > http://mail.mems-exchange.org/mailman/listinfo/quixote-users > >