summaryrefslogtreecommitdiff
path: root/src/queue/index.ts
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2020-01-20 14:14:09 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2020-01-20 14:14:09 +0900
commit84178ba38abe8aae7f1f4c9247306aea0ce44295 (patch)
tree0e01648b03d5360ab8f388aa44c289e9efc03e5a /src/queue/index.ts
parentAP Actorの鍵とkeyIdのフォーマットの変更 (#5733) (diff)
downloadsharkey-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.ts16
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