@nerimity/mimiqueue
Advanced tools
Comparing version 1.2.2 to 1.2.3
{ | ||
"name": "@nerimity/mimiqueue", | ||
"version": "1.2.2", | ||
"version": "1.2.3", | ||
"description": "NodeJS group queuing library. Requires Redis.", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.mjs", |
@@ -9,2 +9,3 @@ import { createClient } from "redis"; | ||
redisClient: RedisClient; | ||
prefix?: string; | ||
} | ||
@@ -16,6 +17,7 @@ export class AltQueue { | ||
name: string; | ||
prefix = "mimiqueue"; | ||
prefix: string; | ||
ids: Map<string, () => void> = new Map(); | ||
sub: RedisClient; | ||
constructor(opts: AltQueueOpts) { | ||
this.prefix = opts.prefix || "mimiqueue"; | ||
this.name = opts.name; | ||
@@ -26,3 +28,3 @@ this.redisClient = opts.redisClient; | ||
this.sub.subscribe("mimiqueue", async (message) => { | ||
this.sub.subscribe(this.prefix, async (message) => { | ||
const payload = JSON.parse(message) as [ | ||
@@ -59,3 +61,3 @@ "start" | "finish" | "remove", | ||
]); | ||
this.redisClient.publish("mimiqueue", newPayload); | ||
this.redisClient.publish(this.prefix, newPayload); | ||
} | ||
@@ -74,3 +76,3 @@ }); | ||
// this.redisClient.publish( | ||
// "mimiqueue", | ||
// this.prefix, | ||
// JSON.stringify(["finish", name, id, groupName]) | ||
@@ -100,3 +102,3 @@ // ); | ||
]); | ||
this.redisClient.publish("mimiqueue", payload); | ||
this.redisClient.publish(this.prefix, payload); | ||
} | ||
@@ -115,3 +117,3 @@ return id; | ||
this.redisClient.publish( | ||
"mimiqueue", | ||
this.prefix, | ||
JSON.stringify(["finish", this.name, idStr, opts?.groupName]) | ||
@@ -118,0 +120,0 @@ ); |
@@ -10,2 +10,3 @@ import { createClient } from "redis"; | ||
process: T; | ||
prefix?: string; | ||
} | ||
@@ -19,3 +20,3 @@ export class Queue< | ||
name: string; | ||
prefix = "mimiqueue"; | ||
prefix: string; | ||
ids: Map<string, [any, any]> = new Map(); | ||
@@ -25,2 +26,3 @@ sub: RedisClient; | ||
constructor(opts: QueueOpts<T>) { | ||
this.prefix = opts.prefix || "mimiqueue"; | ||
this.processFn = opts.process; | ||
@@ -32,3 +34,3 @@ this.name = opts.name; | ||
this.sub.subscribe("mimiqueue", async (message) => { | ||
this.sub.subscribe(this.prefix, async (message) => { | ||
const payload = JSON.parse(message) as [ | ||
@@ -65,3 +67,3 @@ "start" | "finish" | "remove", | ||
]); | ||
this.redisClient.publish("mimiqueue", newPayload); | ||
this.redisClient.publish(this.prefix, newPayload); | ||
} | ||
@@ -88,3 +90,3 @@ }); | ||
this.redisClient.publish( | ||
"mimiqueue", | ||
this.prefix, | ||
JSON.stringify(["finish", name, id, groupName]) | ||
@@ -113,3 +115,3 @@ ); | ||
]); | ||
this.redisClient.publish("mimiqueue", payload); | ||
this.redisClient.publish(this.prefix, payload); | ||
} | ||
@@ -116,0 +118,0 @@ return id; |
@@ -7,2 +7,3 @@ import { createClient } from "redis"; | ||
redisClient: RedisClient; | ||
prefix?: string; | ||
/* | ||
@@ -17,2 +18,3 @@ * @default 30000 | ||
export async function handleTimeout(opts: HandleTimeoutOpts) { | ||
const prefix = opts.prefix || "mimiqueue"; | ||
const redisClient = opts.redisClient; | ||
@@ -22,3 +24,3 @@ const sub = redisClient.duplicate(); | ||
sub.subscribe("mimiqueue", async (message) => { | ||
sub.subscribe(prefix, async (message) => { | ||
const payload = JSON.parse(message) as [ | ||
@@ -44,7 +46,8 @@ "start" | "finish", | ||
]); | ||
redisClient.publish("mimiqueue", removeJobPayload); | ||
await removeActiveJob(redisClient, name, id, payload[3]); | ||
redisClient.publish(prefix, removeJobPayload); | ||
await removeActiveJob(redisClient, name, id, prefix, payload[3]); | ||
const latestJob = await getAndMoveLatestWaitingJobToActive( | ||
redisClient, | ||
payload[1], | ||
prefix, | ||
payload[3] | ||
@@ -59,3 +62,3 @@ ); | ||
]); | ||
redisClient.publish("mimiqueue", newPayload); | ||
redisClient.publish(prefix, newPayload); | ||
}, opts.duration || 30000) | ||
@@ -79,5 +82,6 @@ ); | ||
id: string, | ||
groupName?: string | ||
prefix: string, | ||
groupName?: string, | ||
) { | ||
let key = `mimiqueue:${queueName}`; | ||
let key = `${prefix}:${queueName}`; | ||
if (groupName) key += `:${groupName}`; | ||
@@ -91,5 +95,6 @@ key += ":wait"; | ||
queueName: string, | ||
groupName?: string | ||
prefix: string, | ||
groupName?: string, | ||
) { | ||
let key = `mimiqueue:${queueName}`; | ||
let key = `${prefix}:${queueName}`; | ||
if (groupName) key += `:${groupName}`; | ||
@@ -99,7 +104,7 @@ key += ":wait"; | ||
if (!id) return null; | ||
const activeJob = getJobById(redisClient, queueName, id, groupName); | ||
const activeJob = getJobById(redisClient, queueName, id, prefix, groupName); | ||
if (!activeJob) return null; | ||
await removeWaitingJob(redisClient, queueName, id, groupName); | ||
await addJobToActive(redisClient, queueName, id, groupName); | ||
await removeWaitingJob(redisClient, queueName, id, prefix, groupName); | ||
await addJobToActive(redisClient, queueName, id, prefix, groupName); | ||
return { job: activeJob, id }; | ||
@@ -112,5 +117,6 @@ } | ||
id: string, | ||
prefix: string, | ||
groupName?: string | ||
) { | ||
let key = `mimiqueue:${queueName}`; | ||
let key = `${prefix}:${queueName}`; | ||
if (groupName) key += `:${groupName}`; | ||
@@ -125,5 +131,6 @@ | ||
id: number | string, | ||
prefix: string, | ||
groupName?: string | ||
) { | ||
let key = `mimiqueue:${queueName}`; | ||
let key = `${prefix}:${queueName}`; | ||
if (groupName) key += `:${groupName}`; | ||
@@ -139,5 +146,6 @@ key += ":active"; | ||
id: number | string, | ||
prefix: string, | ||
groupName?: string | ||
) { | ||
let key = `mimiqueue:${queueName}`; | ||
let key = `${prefix}:${queueName}`; | ||
if (groupName) key += `:${groupName}`; | ||
@@ -144,0 +152,0 @@ key += ":active"; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
60514
693