From f24333ecd25c2feb9d09513ba50ab963a4b972da Mon Sep 17 00:00:00 2001 From: Neil Alexander Date: Mon, 4 Apr 2022 15:10:33 +0100 Subject: [PATCH] Maximum two minute warmup period --- federationapi/queue/queue.go | 7 +++++-- keyserver/internal/device_list_update.go | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/federationapi/queue/queue.go b/federationapi/queue/queue.go index 392737918..5b5481274 100644 --- a/federationapi/queue/queue.go +++ b/federationapi/queue/queue.go @@ -119,11 +119,14 @@ func NewOutgoingQueues( } else { log.WithError(err).Error("Failed to get EDU server names for destination queue hydration") } - offset := time.Second * 5 + offset, step := time.Second*5, time.Second + if max := len(serverNames); max > 120 { + step = (time.Second * 120) / time.Duration(max) + } for serverName := range serverNames { if queue := queues.getQueue(serverName); queue != nil { time.AfterFunc(offset, queue.wakeQueueIfNeeded) - offset += time.Second + offset += step } } } diff --git a/keyserver/internal/device_list_update.go b/keyserver/internal/device_list_update.go index 06b75d675..561c9a163 100644 --- a/keyserver/internal/device_list_update.go +++ b/keyserver/internal/device_list_update.go @@ -157,12 +157,15 @@ func (u *DeviceListUpdater) Start() error { if err != nil { return err } - offset := time.Second * 10 + offset, step := time.Second*10, time.Second + if max := len(staleLists); max > 120 { + step = (time.Second * 120) / time.Duration(max) + } for _, userID := range staleLists { time.AfterFunc(offset, func() { u.notifyWorkers(userID) }) - offset += time.Second + offset += step } return nil }