[Zope-dev] Re: post publishing hook

Christian Heimes heimes at faho.rwth-aachen.de
Fri Apr 1 15:28:28 EST 2005


Florent Guillaume wrote:
> I really could use a post publishing hook.
> Standard use case: delay indexing at the end of the request to only do 
> it once per object even if the object has been modified 4 times.

Using a post publishing hook for this use case isn't a good idea - IMO. 
The Publisher has nothing to with indexing. It's a completly different 
part of the architecture.

You want to bind some actions to the transaction system because you want 
to execute some code at the end of the first phase of the 2 phase 
commit. That's a completly different story than the post publishing 
hook. Hooking into the transaction machinery of ZODB is very easy. Write 
your own DateManager implementing the IDateManager interface and 
register it into the current transaction using get_transaction.register(DM).

For your use case overwrite the tpc_vote() method of the data manager to 
do the indexing at the boundary between the two phases.

Jens Vagenpohl's mail host and Chris McD's blob have example code for you.

Christian



More information about the Zope-Dev mailing list