It seems a bit unnecessary for us to use zope.sendmail in that transaction-aware mode, considering that emails are sent out in a dedicated thread that is file-locked already. I wonder how big the chance is that someone else has written to the queue and we're _not_ able to commit the transaction; because that case is disastrous...
How often are you running the 'tick_and_dispatch'?
You might want to experiment with having tick_and_dispatch process smaller batches of the queue at a time. Instead of doing the whole queue, it would do e.g. 100 emails at once, maybe every 5 minutes.
It seems a bit unnecessary for us to use zope.sendmail in that transaction-aware mode, considering that emails are sent out in a dedicated thread that is file-locked already. I wonder how big the chance is that someone else has written to the queue and we're _not_ able to commit the transaction; because that case is disastrous...
How often are you running the 'tick_and_ dispatch' ?
You might want to experiment with having tick_and_dispatch process smaller batches of the queue at a time. Instead of doing the whole queue, it would do e.g. 100 emails at once, maybe every 5 minutes.