Why not just use MaildropHost?

Chris

Victor Safronovich wrote:
Hello zodb-dev!

I   used  a  MailHost  product  for  e-mail notifications, but it sends mails at
runtime. And when there are errors in transaction, objects have been created 
and its not
commited, but users received mails.

I  think i must use an after commit hook, but transactions not supported such
hooks.

I   write  the  basic class for after commit hook ( and I solved my problem with
e-mails using it )

class AfterCommitHook(object):

    def __init__(self):
        transaction.get().register(self)

    #######################################################
    # ZODB Transaction hooks
    #######################################################

    def commit(self, o, t):
        pass

def tpc_begin(self, t): pass

def tpc_abort(self, t): pass

    def abort(self, o, t):
        self.onAbort()

    def tpc_vote(self, t):
        pass

    def tpc_finish(self, t):
        self.onCommit()

    def sortKey(self):
        return 1

    def onAbort(self):
        raise NotImplementedError

    def onCommit(self):
        raise NotImplementedError

But  it  should  be  better  to  add  addAfterCommitHook  to  transaction  as in
addBeforeCommitHook.


--
Simplistix - Content Management, Zope & Python Consulting
           - http://www.simplistix.co.uk
_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to