diff options
author | Mark Sapiro <mark@msapiro.net> | 2018-04-10 20:34:48 -0700 |
---|---|---|
committer | Mark Sapiro <mark@msapiro.net> | 2018-04-10 20:34:48 -0700 |
commit | a942e159e5c738072efa8fa8c4d7c76cc35a7db5 (patch) | |
tree | 94020547bb82e8029fde35b65f4536c4be27b6d2 /Mailman | |
parent | 3cd0fe5463dc4a5c101f7aaaca6c12ae827c6a39 (diff) | |
download | mailman2-a942e159e5c738072efa8fa8c4d7c76cc35a7db5.tar.gz mailman2-a942e159e5c738072efa8fa8c4d7c76cc35a7db5.tar.xz mailman2-a942e159e5c738072efa8fa8c4d7c76cc35a7db5.zip |
Improve DELIVERY_RETRY_WAIT reimplementation.
Diffstat (limited to 'Mailman')
-rwxr-xr-x | Mailman/Queue/OutgoingRunner.py | 8 | ||||
-rw-r--r-- | Mailman/Queue/RetryRunner.py | 7 |
2 files changed, 9 insertions, 6 deletions
diff --git a/Mailman/Queue/OutgoingRunner.py b/Mailman/Queue/OutgoingRunner.py index 0a204e66..86d26808 100755 --- a/Mailman/Queue/OutgoingRunner.py +++ b/Mailman/Queue/OutgoingRunner.py @@ -1,4 +1,4 @@ -# Copyright (C) 2000-2017 by the Free Software Foundation, Inc. +# Copyright (C) 2000-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -122,12 +122,12 @@ class OutgoingRunner(Runner, BounceMixin): # disposition? if now > deliver_until: return False - # We're going to retry, but not too soon. - deliver_after = now + mm_cfg.DELIVERY_RETRY_WAIT - msgdata['deliver_after'] = deliver_after else: # Keep trying to delivery this message for a while deliver_until = now + mm_cfg.DELIVERY_RETRY_PERIOD + # Don't retry delivery too soon. + deliver_after = now + mm_cfg.DELIVERY_RETRY_WAIT + msgdata['deliver_after'] = deliver_after msgdata['last_recip_count'] = len(recips) msgdata['deliver_until'] = deliver_until msgdata['recips'] = recips diff --git a/Mailman/Queue/RetryRunner.py b/Mailman/Queue/RetryRunner.py index 66244253..49aa484d 100644 --- a/Mailman/Queue/RetryRunner.py +++ b/Mailman/Queue/RetryRunner.py @@ -1,4 +1,4 @@ -# Copyright (C) 2003 by the Free Software Foundation, Inc. +# Copyright (C) 2003-2018 by the Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -37,7 +37,10 @@ class RetryRunner(Runner): self.__outq = Switchboard(mm_cfg.OUTQUEUE_DIR) def _dispose(self, mlist, msg, msgdata): - # Move it to the out queue for another retry + # Move it to the out queue for another retry if it's time. + deliver_after = msgdata.get('deliver_after', 0) + if time.time() < deliver_after: + return True self.__outq.enqueue(msg, msgdata) return False |