[ZODB-Dev] RFC: Pre-commit hooks
Florent Guillaume
fg at nuxeo.com
Mon Apr 4 11:42:30 EDT 2005
Jim Fulton <jim at zope.com> wrote:
> I propose to add a pre-commit hook to ZODB.
+1 of course.
> Proposal
>
> We add a new method to transaction objects:
>
> def beforeCommitHook(hook, *args, **kw):
> """Register a hook to call before the transaction is committed
>
> The provided hook will be called after the transaction's
> commit method has been called, but before the commit process
> has been started. The hook will be passed the given
> positional and keyword arguments.
The hook probably may want to be called with the transaction object
itself as arguments, or is it a YAGNI? I'm saying this because
synchronizers are passed the transaction, OTOH this is at a slightly
higher level and we may not care about the transaction.
> Multiple hooks can be registered and will be called in order.
> This method can be called from executing hooks. That is, executing
> hooks can register more hooks. (Applications should take care
> to avoid creating infinite loops by recursvely registering hooks.)
Yes, that's exactly what I was doing for my post-publishing hook called by Publish.py
> Hooks are not called and are discarded if the transaction aborts.
> """
>
> We would also modify transaction commit methods to call hooks. Hooks would
> not be called on sub-transaction commit. (If necessary, we could add
> separate sub-transaction hooks, but I don't think we need this.)
>
> This hook is very simple to use an implement and, I think, addresses
> the requitement much more directly than implementing special data
> managers.
>
> Thoughts?
>
> Anyone up for implementing this (with a doctest, of course)?
Yes I'll look at it.
Florent
> I'd like to get this into ZODB 3.4.
>
> Jim
--
Florent Guillaume, Nuxeo (Paris, France) CTO, Director of R&D
+33 1 40 33 71 59 http://nuxeo.com fg at nuxeo.com
More information about the ZODB-Dev
mailing list