Skip to content

Commit

Permalink
perf(scripts): reuse keys array to avoid allocations
Browse files Browse the repository at this point in the history
  • Loading branch information
manast committed Feb 28, 2023
1 parent 4846cf1 commit feac7b4
Showing 1 changed file with 24 additions and 15 deletions.
39 changes: 24 additions & 15 deletions src/classes/scripts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,26 @@ import { ChainableCommander } from 'ioredis';
export type JobData = [JobJsonRaw | number, string?];

export class Scripts {
constructor(protected queue: MinimalQueue) {}
moveToFinishedKeys: string[];

constructor(protected queue: MinimalQueue) {
const queueKeys = this.queue.keys;

this.moveToFinishedKeys = [
queueKeys.wait,
queueKeys.active,
queueKeys.priority,
queueKeys.events,
queueKeys.stalled,
queueKeys.limiter,
queueKeys.delayed,
queueKeys.paused,
undefined,
undefined,
queueKeys.meta,
undefined,
];
}

async isJobInList(listKey: string, jobId: string): Promise<boolean> {
const client = await this.queue.client;
Expand Down Expand Up @@ -240,20 +259,10 @@ export class Scripts {

const metricsKey = this.queue.toKey(`metrics:${target}`);

const keys = [
queueKeys.wait,
queueKeys.active,
queueKeys.priority,
queueKeys.events,
queueKeys.stalled,
queueKeys.limiter,
queueKeys.delayed,
queueKeys.paused,
queueKeys[target],
this.queue.toKey(job.id),
queueKeys.meta,
metricsKey,
];
const keys = this.moveToFinishedKeys;
keys[8] = queueKeys[target];
keys[9] = this.queue.toKey(job.id);
keys[11] = metricsKey;

const keepJobs = this.getKeepJobs(shouldRemove, workerKeepJobs);

Expand Down

0 comments on commit feac7b4

Please sign in to comment.