[Zope] Re: [Zope-dev] post-publishing hook
Shane Hathaway
shane@zope.com
Fri, 29 Nov 2002 15:49:02 -0500
On 11/29/2002 01:33 PM, Ivo van der Wijk wrote:
> On Fri, Nov 29, 2002 at 01:07:24PM +0100, Carlo Giomini wrote:
>
> >Dear all,
> >I need a sort of post-publishing hook (so to say). I need Zope to call a
> >function of mine as the very last action of publishing a request,
> i.e. after
> >having built the response (and sent it to the browser possibly), but
> >before starting publishing a new request. My Zope server is running as a
> >single-threaded app.
> >Does Zope support this any way?
> >
>
>
> There is a way, but I find it somewhat ugly/hackish. But Shane uses it
> in CookieCrumbler, so it must be good ;)
"Reliable" and "good" are not necessarily the same thing. :-) Since the
only way ZODB connections ever get closed in a standard Zope setup is
through the request.hold() mechanism, you can be sure that if Zope is
working at all, the side effects of request.hold() are working. Relying
on side effects can be dangerous, though.
> You'll be working outside the REQUEST transaction at that moment, so
> please
> keep that in mind when modifying objects.
In fact, the database connection might already be closed. If you need
to read or write the ZODB, you might have to open a private connection
and close it before returning. Ugh.
Shane