diff options
| author | MeiMei <30769358+mei23@users.noreply.github.com> | 2020-01-20 14:14:09 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2020-01-20 14:14:09 +0900 |
| commit | 84178ba38abe8aae7f1f4c9247306aea0ce44295 (patch) | |
| tree | 0e01648b03d5360ab8f388aa44c289e9efc03e5a /src/queue/index.ts | |
| parent | AP Actorの鍵とkeyIdのフォーマットの変更 (#5733) (diff) | |
| download | sharkey-84178ba38abe8aae7f1f4c9247306aea0ce44295.tar.gz sharkey-84178ba38abe8aae7f1f4c9247306aea0ce44295.tar.bz2 sharkey-84178ba38abe8aae7f1f4c9247306aea0ce44295.zip | |
APの流量制限とリトライ期間の変更 (#5734)
* AP rate limit
* AP Job attempts
* fix
Diffstat (limited to 'src/queue/index.ts')
| -rw-r--r-- | src/queue/index.ts | 16 |
1 files changed, 10 insertions, 6 deletions
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 |