summaryrefslogtreecommitdiff
path: root/src/queue/initialize.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/queue/initialize.ts')
-rw-r--r--src/queue/initialize.ts21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/queue/initialize.ts b/src/queue/initialize.ts
index 5fe5a9f6f3..31102a3ed2 100644
--- a/src/queue/initialize.ts
+++ b/src/queue/initialize.ts
@@ -11,8 +11,23 @@ export function initialize<T>(name: string, limitPerSec = -1) {
},
prefix: config.redis.prefix ? `${config.redis.prefix}:queue` : 'queue',
limiter: limitPerSec > 0 ? {
- max: limitPerSec * 5,
- duration: 5000
- } : undefined
+ max: limitPerSec,
+ duration: 1000
+ } : undefined,
+ settings: {
+ backoffStrategies: {
+ apBackoff
+ }
+ }
});
}
+
+// ref. https://github.com/misskey-dev/misskey/pull/7635#issue-971097019
+function apBackoff(attemptsMade: number, err: Error) {
+ const baseDelay = 60 * 1000; // 1min
+ const maxBackoff = 8 * 60 * 60 * 1000; // 8hours
+ let backoff = (Math.pow(2, attemptsMade) - 1) * baseDelay;
+ backoff = Math.min(backoff, maxBackoff);
+ backoff += Math.round(backoff * Math.random() * 0.2);
+ return backoff;
+}