diff --git a/synapse/config/registration.py b/synapse/config/registration.py
index b4fd4af368..1835b4b1f3 100644
--- a/synapse/config/registration.py
+++ b/synapse/config/registration.py
@@ -39,9 +39,7 @@ class AccountValidityConfig(Config):
else:
self.renew_email_subject = "Renew your %(app)s account"
- self.startup_job_max_delta = self.parse_duration(
- config.get("startup_job_max_delta", 0),
- )
+ self.startup_job_max_delta = self.period * 10. / 100.
if self.renew_by_email_enabled and "public_baseurl" not in synapse_config:
raise ConfigError("Can't send renewal emails without 'public_baseurl'")
@@ -133,20 +131,15 @@ class RegistrationConfig(Config):
# This means that, if a validity period is set, and Synapse is restarted (it will
# then derive an expiration date from the current validity period), and some time
# after that the validity period changes and Synapse is restarted, the users'
- # expiration dates won't be updated unless their account is manually renewed.
- #
- # If set, the ``startup_job_max_delta`` optional setting will make the startup job
- # described above set a random expiration date between t + period and
- # t + period + startup_job_max_delta, t being the date and time at which the job
- # sets the expiration date for a given user. This is useful for server admins that
- # want to avoid Synapse sending a lot of renewal emails at once.
+ # expiration dates won't be updated unless their account is manually renewed. This
+ # date will be randomly selected within a range [now + period ; now + period + d],
+ # where d is equal to 10% of the validity period.
#
#account_validity:
# enabled: True
# period: 6w
# renew_at: 1w
# renew_email_subject: "Renew your %%(app)s account"
- # startup_job_max_delta: 2d
# The user must provide all of the below types of 3PID when registering.
#
diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index 40802fd3dc..7f944ec717 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -329,14 +329,13 @@ class SQLBaseStore(object):
user_id (str): User ID to set an expiration date for.
use_delta (bool): If set to False, the expiration date for the user will be
now + validity period. If set to True, this expiration date will be a
- random value in the [now + period; now + period + max_delta] range,
- max_delta being the configured value for the size of the range, unless
- delta is 0, in which case it sets it to now + period.
+ random value in the [now + period; now + period + d] range, d being a
+ delta equal to 10% of the validity period.
"""
now_ms = self._clock.time_msec()
expiration_ts = now_ms + self._account_validity.period
- if use_delta and self._account_validity.startup_job_max_delta:
+ if use_delta:
expiration_ts = self.rand.randrange(
expiration_ts,
expiration_ts + self._account_validity.startup_job_max_delta,
|