|
|
|
@ -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
|
|
|
|
|