I am developing the processing of bounce messages as my GSoC project.
Bounce Functions are being developed in this pr on GitLab.
There is one
bool attribute called
bounce_you_are_disabled_warnings_interval in the
Mailing List model.
The number of days between each disabled notification.
Implementing this has a problem
process_bouncesfunction which processes the
BounceEventsfunction it is easy it just takes one by one the events from the database and processes them.
Send_Warningsfunction if the same approach was followed, meaning it would take one by one the
Addressinstances, check tuples in the
bounce_infoattribute ( see the pr for this ) and see whether to send a warning mail or not to can be a slow method.
Addresseslist is very long, then an
Addressinstance in the very bottom of the list whose subscription has been disabled and some warning emails send, now waits to receive another mail as the interval is more than
Addressinstance but the interval is already crossed. This can cause slow performance as the
warning mailwill be sent way late than it actually should have been sent.
send_warningswhat if both of them attempted at the same
implementation on sending warning mailsand
implementation to increase bounce_scoreare separate things and they can cause problems if they processed the same instance.
Pointers on above will be helpful. Am I missing something above?