perf(queue): BullMQ + DragonflyDB で Hashtag を使用しすべてをロックしないようにする (MisskeyIO#838)

This commit is contained in:
riku6460 2024-12-25 11:35:41 +09:00 committed by GitHub
parent 18f354c58f
commit 8c81bb9b6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 34 additions and 23 deletions

View file

@ -18,7 +18,12 @@ export const QUEUE = {
WEBHOOK_DELIVER: 'webhookDeliver',
};
export function formatQueueName(config: RedisOptionsSource, queueName: typeof QUEUE[keyof typeof QUEUE]): string {
return typeof config.queueNameSuffix === 'string' ? `${queueName}-${config.queueNameSuffix}` : queueName;
}
export function baseQueueOptions(config: RedisOptions & RedisOptionsSource, queueOptions: Partial<Bull.QueueOptions>, queueName: typeof QUEUE[keyof typeof QUEUE]): Bull.QueueOptions {
const name = formatQueueName(config, queueName);
return {
...queueOptions,
connection: {
@ -33,11 +38,12 @@ export function baseQueueOptions(config: RedisOptions & RedisOptionsSource, queu
return 1;
},
},
prefix: config.prefix ? `${config.prefix}:queue:${queueName}` : `queue:${queueName}`,
prefix: config.prefix ? `{${config.prefix}:queue:${name}}` : `{queue:${name}}`,
};
}
export function baseWorkerOptions(config: RedisOptions & RedisOptionsSource, workerOptions: Partial<Bull.WorkerOptions>, queueName: typeof QUEUE[keyof typeof QUEUE]): Bull.WorkerOptions {
const name = formatQueueName(config, queueName);
return {
...workerOptions,
connection: {
@ -52,6 +58,6 @@ export function baseWorkerOptions(config: RedisOptions & RedisOptionsSource, wor
return 1;
},
},
prefix: config.prefix ? `${config.prefix}:queue:${queueName}` : `queue:${queueName}`,
prefix: config.prefix ? `{${config.prefix}:queue:${name}}` : `{queue:${name}}`,
};
}