From 84178ba38abe8aae7f1f4c9247306aea0ce44295 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Mon, 20 Jan 2020 14:14:09 +0900 Subject: APの流量制限とリトライ期間の変更 (#5734) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * AP rate limit * AP Job attempts * fix --- src/queue/index.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/queue') diff --git a/src/queue/index.ts b/src/queue/index.ts index ad74533530..b1437da8b6 100644 --- a/src/queue/index.ts +++ b/src/queue/index.ts @@ -13,7 +13,7 @@ import { queueLogger } from './logger'; import { DriveFile } from '../models/entities/drive-file'; import { getJobInfo } from './get-job-info'; -function initializeQueue(name: string) { +function initializeQueue(name: string, limitPerSec = -1) { return new Queue(name, { redis: { port: config.redis.port, @@ -21,7 +21,11 @@ function initializeQueue(name: string) { password: config.redis.pass, db: config.redis.db || 0, }, - prefix: config.redis.prefix ? `${config.redis.prefix}:queue` : 'queue' + prefix: config.redis.prefix ? `${config.redis.prefix}:queue` : 'queue', + limiter: limitPerSec > 0 ? { + max: limitPerSec * 5, + duration: 5000 + } : undefined }); } @@ -33,8 +37,8 @@ function renderError(e: Error): any { }; } -export const deliverQueue = initializeQueue('deliver'); -export const inboxQueue = initializeQueue('inbox'); +export const deliverQueue = initializeQueue('deliver', config.deliverJobPerSec || 128); +export const inboxQueue = initializeQueue('inbox', config.inboxJobPerSec || 16); export const dbQueue = initializeQueue('db'); export const objectStorageQueue = initializeQueue('objectStorage'); @@ -85,7 +89,7 @@ export function deliver(user: ILocalUser, content: any, to: any) { }; return deliverQueue.add(data, { - attempts: 8, + attempts: config.deliverJobMaxAttempts || 12, backoff: { type: 'exponential', delay: 60 * 1000 @@ -102,7 +106,7 @@ export function inbox(activity: any, signature: httpSignature.IParsedSignature) }; return inboxQueue.add(data, { - attempts: 8, + attempts: config.inboxJobMaxAttempts || 8, backoff: { type: 'exponential', delay: 1000 -- cgit v1.2.3-freya