glide-mq 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/queue.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import type { QueueOptions, JobOptions, Client, ScheduleOpts, JobTemplate, SchedulerEntry, Metrics, JobCounts } from './types';
2
+ import type { QueueOptions, JobOptions, Client, ScheduleOpts, JobTemplate, SchedulerEntry, Metrics, JobCounts, SearchJobsOptions } from './types';
3
3
  import { Job } from './job';
4
4
  export declare class Queue<D = any, R = any> extends EventEmitter {
5
5
  readonly name: string;
@@ -18,13 +18,16 @@ export declare class Queue<D = any, R = any> extends EventEmitter {
18
18
  add(name: string, data: D, opts?: JobOptions): Promise<Job<D, R> | null>;
19
19
  /**
20
20
  * Add multiple jobs to the queue in a pipeline.
21
- * Each job is added via a separate addJob FCALL (non-atomic across jobs).
21
+ * Uses GLIDE's Batch API to pipeline all addJob FCALL commands in a single round trip.
22
+ * Non-atomic: each job is independent, but all are sent together for efficiency.
22
23
  */
23
24
  addBulk(jobs: {
24
25
  name: string;
25
26
  data: D;
26
27
  opts?: JobOptions;
27
28
  }[]): Promise<Job<D, R>[]>;
29
+ /** @internal Build Job objects from batch exec results. */
30
+ private buildBulkJobs;
28
31
  /**
29
32
  * Retrieve a job by ID from the queue.
30
33
  * Returns null if the job does not exist.
@@ -98,6 +101,22 @@ export declare class Queue<D = any, R = any> extends EventEmitter {
98
101
  * @param end - End index for pagination (default -1, meaning all)
99
102
  */
100
103
  getJobs(type: 'waiting' | 'active' | 'delayed' | 'completed' | 'failed', start?: number, end?: number): Promise<Job<D, R>[]>;
104
+ /**
105
+ * Search for jobs matching the given criteria.
106
+ * Supports filtering by state, name (exact match), and data fields (shallow key-value match).
107
+ * If state is provided, searches only within that state's data structure.
108
+ * If no state is provided, SCANs all job hashes matching the queue prefix.
109
+ * Default limit: 100.
110
+ */
111
+ searchJobs(opts: SearchJobsOptions): Promise<Job<D, R>[]>;
112
+ /** @internal Map a terminal/zset state to its corresponding key. */
113
+ private zsetKeyForState;
114
+ /** @internal Get job IDs from a state's data structure. */
115
+ private getJobIdsForState;
116
+ /** @internal Use Lua searchByName within a specific state. */
117
+ private searchByNameInState;
118
+ /** @internal SCAN all job hashes and optionally filter by name. */
119
+ private scanJobIds;
101
120
  /**
102
121
  * Get job counts by types. Alias for getJobCounts().
103
122
  */
@@ -1 +1 @@
1
- {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.d.ts","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClJ,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAwB5B,qBAAa,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,CAAE,SAAQ,YAAY;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,IAAI,CAAY;gBAEZ,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IAO5C,gBAAgB;IACV,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBlC;;;;OAIG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAmF9E;;;;OAIG;IACG,OAAO,CACX,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,UAAU,CAAA;KAAE,EAAE,GACnD,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IA0CvB,2DAA2D;IAC3D,OAAO,CAAC,aAAa;IAyBrB;;;OAGG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IASnD;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAK7B;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5C;;;;;OAKG;IACG,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD;;;;OAIG;IACG,kBAAkB,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,QAAQ,CAAC,EAAE,WAAW,GACrB,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKrD;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhE;;;;;;;OAOG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IA8BxC;;;;OAIG;IACG,UAAU,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC3D;;;;OAIG;YACW,aAAa;IAyB3B;;;;;OAKG;IACG,OAAO,CACX,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,EAC/D,KAAK,SAAI,EACT,GAAG,SAAK,GACP,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAiEvB;;;;;;OAMG;IACG,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAqC/D,oEAAoE;IACpE,OAAO,CAAC,eAAe;IAQvB,2DAA2D;YAC7C,iBAAiB;IAsD/B,8DAA8D;YAChD,mBAAmB;IA4BjC,mEAAmE;YACrD,UAAU;IA4CxB;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,SAAS,CAAC;IAI9C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAMlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,cAAc,CAAA;KAAE,EAAE,CAAC;IAc7E;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAI,EAAE,GAAG,SAAK,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAU7F;;;;;OAKG;IACG,iBAAiB,CAAC,KAAK,SAAI,EAAE,GAAG,SAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAyBlE;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
package/dist/queue.js CHANGED
@@ -41,6 +41,14 @@ const utils_1 = require("./utils");
41
41
  const connection_1 = require("./connection");
42
42
  const index_1 = require("./functions/index");
43
43
  const telemetry_1 = require("./telemetry");
44
+ /** Check if all key-value pairs in filter exist in data (shallow match). */
45
+ function matchesData(data, filter) {
46
+ for (const [key, value] of Object.entries(filter)) {
47
+ if (data[key] !== value)
48
+ return false;
49
+ }
50
+ return true;
51
+ }
44
52
  class Queue extends events_1.EventEmitter {
45
53
  name;
46
54
  opts;
@@ -92,10 +100,13 @@ class Queue extends events_1.EventEmitter {
92
100
  const parentId = opts?.parent ? opts.parent.id : '';
93
101
  const maxAttempts = opts?.attempts ?? 0;
94
102
  // Payload size validation - prevent DoS via oversized jobs
95
- const serialized = JSON.stringify(data);
103
+ let serialized = JSON.stringify(data);
96
104
  if (serialized.length > 1_048_576) {
97
105
  throw new Error(`Job data exceeds maximum size (${serialized.length} bytes > 1MB). Use smaller payloads or store large data externally.`);
98
106
  }
107
+ if (this.opts.compression === 'gzip') {
108
+ serialized = (0, utils_1.compress)(serialized);
109
+ }
99
110
  let jobId;
100
111
  if (opts?.deduplication) {
101
112
  const dedupOpts = opts.deduplication;
@@ -117,25 +128,55 @@ class Queue extends events_1.EventEmitter {
117
128
  }
118
129
  /**
119
130
  * Add multiple jobs to the queue in a pipeline.
120
- * Each job is added via a separate addJob FCALL (non-atomic across jobs).
131
+ * Uses GLIDE's Batch API to pipeline all addJob FCALL commands in a single round trip.
132
+ * Non-atomic: each job is independent, but all are sent together for efficiency.
121
133
  */
122
134
  async addBulk(jobs) {
135
+ if (jobs.length === 0)
136
+ return [];
123
137
  const client = await this.getClient();
124
- const results = [];
125
- for (const entry of jobs) {
126
- const timestamp = Date.now();
138
+ const isCluster = this.opts.connection.clusterMode ?? false;
139
+ const timestamp = Date.now();
140
+ // Prepare job metadata for each entry
141
+ const prepared = jobs.map((entry) => {
127
142
  const opts = entry.opts ?? {};
128
143
  const delay = opts.delay ?? 0;
129
144
  const priority = opts.priority ?? 0;
130
145
  const parentId = opts.parent ? opts.parent.id : '';
131
146
  const maxAttempts = opts.attempts ?? 0;
132
- const jobId = await (0, index_1.addJob)(client, this.keys, entry.name, JSON.stringify(entry.data), JSON.stringify(opts), timestamp, delay, priority, parentId, maxAttempts);
133
- const job = new job_1.Job(client, this.keys, String(jobId), entry.name, entry.data, opts);
134
- job.timestamp = timestamp;
135
- job.parentId = parentId || undefined;
136
- results.push(job);
147
+ let serializedData = JSON.stringify(entry.data);
148
+ if (this.opts.compression === 'gzip') {
149
+ serializedData = (0, utils_1.compress)(serializedData);
150
+ }
151
+ return { entry, opts, delay, priority, parentId, maxAttempts, serializedData };
152
+ });
153
+ // Build a batch with all fcall commands
154
+ const keys = [this.keys.id, this.keys.stream, this.keys.scheduled, this.keys.events];
155
+ const batch = isCluster ? new speedkey_1.ClusterBatch(false) : new speedkey_1.Batch(false);
156
+ for (const p of prepared) {
157
+ batch.fcall('glidemq_addJob', keys, [
158
+ p.entry.name, p.serializedData, JSON.stringify(p.opts),
159
+ timestamp.toString(), p.delay.toString(), p.priority.toString(),
160
+ p.parentId, p.maxAttempts.toString(),
161
+ ]);
137
162
  }
138
- return results;
163
+ const rawResults = isCluster
164
+ ? await client.exec(batch, true)
165
+ : await client.exec(batch, true);
166
+ return this.buildBulkJobs(client, prepared, rawResults, timestamp);
167
+ }
168
+ /** @internal Build Job objects from batch exec results. */
169
+ buildBulkJobs(client, prepared, rawResults, timestamp) {
170
+ if (!rawResults || rawResults.length !== prepared.length) {
171
+ throw new Error(`addBulk batch returned ${rawResults?.length ?? 'null'} results, expected ${prepared.length}`);
172
+ }
173
+ return prepared.map((p, i) => {
174
+ const jobId = String(rawResults[i]);
175
+ const job = new job_1.Job(client, this.keys, jobId, p.entry.name, p.entry.data, p.opts);
176
+ job.timestamp = timestamp;
177
+ job.parentId = p.parentId || undefined;
178
+ return job;
179
+ });
139
180
  }
140
181
  /**
141
182
  * Retrieve a job by ID from the queue.
@@ -377,10 +418,7 @@ class Queue extends events_1.EventEmitter {
377
418
  case 'delayed':
378
419
  case 'completed':
379
420
  case 'failed': {
380
- const zsetKey = type === 'delayed' ? this.keys.scheduled
381
- : type === 'completed' ? this.keys.completed
382
- : this.keys.failed;
383
- const members = await client.zrange(zsetKey, { start: start, end: end >= 0 ? end : -1 });
421
+ const members = await client.zrange(this.zsetKeyForState(type), { start: start, end: end >= 0 ? end : -1 });
384
422
  jobIds = members.map(m => String(m));
385
423
  break;
386
424
  }
@@ -389,6 +427,154 @@ class Queue extends events_1.EventEmitter {
389
427
  const results = await Promise.all(jobIds.map(id => this.getJob(id)));
390
428
  return results.filter((job) => job !== null);
391
429
  }
430
+ /**
431
+ * Search for jobs matching the given criteria.
432
+ * Supports filtering by state, name (exact match), and data fields (shallow key-value match).
433
+ * If state is provided, searches only within that state's data structure.
434
+ * If no state is provided, SCANs all job hashes matching the queue prefix.
435
+ * Default limit: 100.
436
+ */
437
+ async searchJobs(opts) {
438
+ const client = await this.getClient();
439
+ const limit = opts.limit ?? 100;
440
+ const pfx = (0, utils_1.keyPrefix)(this.opts.prefix ?? 'glide', this.name);
441
+ let jobIds;
442
+ if (opts.state && opts.name) {
443
+ // Use Lua function for name-based filtering within a state
444
+ jobIds = await this.searchByNameInState(client, opts.state, opts.name, limit, pfx);
445
+ }
446
+ else if (opts.state) {
447
+ // Get all IDs from the state, will filter by data below
448
+ jobIds = await this.getJobIdsForState(client, opts.state, limit);
449
+ }
450
+ else {
451
+ // No state: SCAN all job hashes
452
+ jobIds = await this.scanJobIds(client, pfx, opts.name, limit);
453
+ }
454
+ // Fetch full job objects
455
+ const jobs = [];
456
+ for (const id of jobIds) {
457
+ if (jobs.length >= limit)
458
+ break;
459
+ const job = await this.getJob(id);
460
+ if (!job)
461
+ continue;
462
+ // Apply name filter if we used a non-Lua path
463
+ if (opts.name && !opts.state && job.name !== opts.name)
464
+ continue;
465
+ // Apply data filter (shallow key-value match)
466
+ if (opts.data && !matchesData(job.data, opts.data))
467
+ continue;
468
+ jobs.push(job);
469
+ }
470
+ return jobs;
471
+ }
472
+ /** @internal Map a terminal/zset state to its corresponding key. */
473
+ zsetKeyForState(state) {
474
+ switch (state) {
475
+ case 'delayed': return this.keys.scheduled;
476
+ case 'completed': return this.keys.completed;
477
+ case 'failed': return this.keys.failed;
478
+ }
479
+ }
480
+ /** @internal Get job IDs from a state's data structure. */
481
+ async getJobIdsForState(client, state, limit) {
482
+ switch (state) {
483
+ case 'waiting': {
484
+ const entries = await client.xrange(this.keys.stream, speedkey_1.InfBoundary.NegativeInfinity, speedkey_1.InfBoundary.PositiveInfinity, { count: limit });
485
+ if (!entries)
486
+ return [];
487
+ return (0, utils_1.extractJobIdsFromStreamEntries)(entries);
488
+ }
489
+ case 'active': {
490
+ try {
491
+ const pendingEntries = await client.xpendingWithOptions(this.keys.stream, index_1.CONSUMER_GROUP, {
492
+ start: speedkey_1.InfBoundary.NegativeInfinity,
493
+ end: speedkey_1.InfBoundary.PositiveInfinity,
494
+ count: limit,
495
+ });
496
+ const entryIds = pendingEntries.map(e => String(e[0]));
497
+ const jobIds = [];
498
+ for (const entryId of entryIds) {
499
+ const entryData = await client.xrange(this.keys.stream, { value: entryId }, { value: entryId }, { count: 1 });
500
+ if (entryData) {
501
+ jobIds.push(...(0, utils_1.extractJobIdsFromStreamEntries)(entryData));
502
+ }
503
+ }
504
+ return jobIds;
505
+ }
506
+ catch {
507
+ return [];
508
+ }
509
+ }
510
+ case 'delayed':
511
+ case 'completed':
512
+ case 'failed': {
513
+ const members = await client.zrange(this.zsetKeyForState(state), { start: 0, end: limit - 1 });
514
+ return members.map(m => String(m));
515
+ }
516
+ }
517
+ }
518
+ /** @internal Use Lua searchByName within a specific state. */
519
+ async searchByNameInState(client, state, name, limit, pfx) {
520
+ // Active state must be handled in TS since it requires consumer group interaction
521
+ if (state === 'active') {
522
+ const allIds = await this.getJobIdsForState(client, 'active', 10000);
523
+ const matched = [];
524
+ for (const id of allIds) {
525
+ if (matched.length >= limit)
526
+ break;
527
+ const jobName = await client.hget(this.keys.job(id), 'name');
528
+ if (String(jobName) === name) {
529
+ matched.push(id);
530
+ }
531
+ }
532
+ return matched;
533
+ }
534
+ if (state === 'waiting') {
535
+ return (0, index_1.searchByName)(client, this.keys.stream, 'stream', name, limit, pfx + ':');
536
+ }
537
+ return (0, index_1.searchByName)(client, this.zsetKeyForState(state), 'zset', name, limit, pfx + ':');
538
+ }
539
+ /** @internal SCAN all job hashes and optionally filter by name. */
540
+ async scanJobIds(client, pfx, nameFilter, limit) {
541
+ const pattern = `${pfx}:job:*`;
542
+ const jobIds = [];
543
+ const prefixLen = `${pfx}:job:`.length;
544
+ const collectKeys = async (keys) => {
545
+ for (const key of keys) {
546
+ if (jobIds.length >= limit)
547
+ break;
548
+ const keyStr = String(key);
549
+ const id = keyStr.substring(prefixLen);
550
+ if (nameFilter) {
551
+ const jobName = await client.hget(keyStr, 'name');
552
+ if (String(jobName) !== nameFilter)
553
+ continue;
554
+ }
555
+ jobIds.push(id);
556
+ }
557
+ };
558
+ if (this.opts.connection.clusterMode) {
559
+ const { ClusterScanCursor } = await Promise.resolve().then(() => __importStar(require('@glidemq/speedkey')));
560
+ const clusterClient = client;
561
+ let cursor = new ClusterScanCursor();
562
+ while (!cursor.isFinished() && jobIds.length < limit) {
563
+ const [nextCursor, keys] = await clusterClient.scan(cursor, { match: pattern, count: 100 });
564
+ cursor = nextCursor;
565
+ await collectKeys(keys);
566
+ }
567
+ }
568
+ else {
569
+ let cursor = '0';
570
+ do {
571
+ const result = await client.scan(cursor, { match: pattern, count: 100 });
572
+ cursor = result[0];
573
+ await collectKeys(result[1]);
574
+ } while (cursor !== '0' && jobIds.length < limit);
575
+ }
576
+ return jobIds;
577
+ }
392
578
  /**
393
579
  * Get job counts by types. Alias for getJobCounts().
394
580
  */
package/dist/queue.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue.js","sourceRoot":"","sources":["../src/queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * In-memory testing mode for glide-mq.
3
+ * TestQueue and TestWorker mimic the real API using plain Maps - no Valkey needed.
4
+ *
5
+ * Usage:
6
+ * import { TestQueue, TestWorker } from 'glide-mq/testing';
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ import type { JobOptions, JobCounts, Processor } from './types';
10
+ export interface TestJobRecord<D = any, R = any> {
11
+ id: string;
12
+ name: string;
13
+ data: D;
14
+ opts: JobOptions;
15
+ state: 'waiting' | 'active' | 'completed' | 'failed' | 'delayed';
16
+ attemptsMade: number;
17
+ returnvalue: R | undefined;
18
+ failedReason: string | undefined;
19
+ timestamp: number;
20
+ finishedOn: number | undefined;
21
+ processedOn: number | undefined;
22
+ }
23
+ /**
24
+ * Minimal Job-like object returned by TestQueue methods and passed to processors.
25
+ * Mirrors the public surface of the real Job class.
26
+ */
27
+ export declare class TestJob<D = any, R = any> {
28
+ readonly id: string;
29
+ readonly name: string;
30
+ data: D;
31
+ readonly opts: JobOptions;
32
+ attemptsMade: number;
33
+ returnvalue: R | undefined;
34
+ failedReason: string | undefined;
35
+ progress: number | object;
36
+ timestamp: number;
37
+ finishedOn: number | undefined;
38
+ processedOn: number | undefined;
39
+ constructor(record: TestJobRecord<D, R>);
40
+ log(_message: string): Promise<void>;
41
+ updateProgress(p: number | object): Promise<void>;
42
+ updateData(data: D): Promise<void>;
43
+ }
44
+ export interface SearchJobsOptions {
45
+ name?: string;
46
+ data?: Record<string, unknown>;
47
+ state?: TestJobRecord['state'];
48
+ }
49
+ export interface TestQueueOptions {
50
+ /** Enable deduplication in 'simple' mode. */
51
+ dedup?: boolean;
52
+ }
53
+ export declare class TestQueue<D = any, R = any> extends EventEmitter {
54
+ readonly name: string;
55
+ /** @internal */ readonly jobs: Map<string, TestJobRecord<D, R>>;
56
+ /** @internal */ readonly dedupSet: Set<string>;
57
+ private idCounter;
58
+ private paused;
59
+ private opts;
60
+ /** Workers register themselves here so we can notify on add. */
61
+ /** @internal */ readonly workers: Set<TestWorker<D, R>>;
62
+ constructor(name: string, opts?: TestQueueOptions);
63
+ /** Add a single job. Returns null if deduplicated. */
64
+ add(name: string, data: D, opts?: JobOptions): Promise<TestJob<D, R> | null>;
65
+ /** Add multiple jobs. */
66
+ addBulk(jobs: {
67
+ name: string;
68
+ data: D;
69
+ opts?: JobOptions;
70
+ }[]): Promise<TestJob<D, R>[]>;
71
+ /** Retrieve a job by ID. */
72
+ getJob(id: string): Promise<TestJob<D, R> | null>;
73
+ /** Retrieve jobs by state. */
74
+ getJobs(type: 'waiting' | 'active' | 'delayed' | 'completed' | 'failed', start?: number, end?: number): Promise<TestJob<D, R>[]>;
75
+ /** Get counts by state. */
76
+ getJobCounts(): Promise<JobCounts>;
77
+ /** Pause the queue - workers stop picking up new jobs. */
78
+ pause(): Promise<void>;
79
+ /** Resume the queue. */
80
+ resume(): Promise<void>;
81
+ /** Check if paused. */
82
+ isPaused(): boolean;
83
+ /** Search jobs by name and/or data fields. */
84
+ searchJobs(opts: SearchJobsOptions): Promise<TestJob<D, R>[]>;
85
+ /** Close the queue. */
86
+ close(): Promise<void>;
87
+ }
88
+ export interface TestWorkerOptions {
89
+ concurrency?: number;
90
+ }
91
+ export declare class TestWorker<D = any, R = any> extends EventEmitter {
92
+ private queue;
93
+ private processor;
94
+ private concurrency;
95
+ private activeCount;
96
+ private running;
97
+ private processing;
98
+ constructor(queue: TestQueue<D, R>, processor: Processor<D, R>, opts?: TestWorkerOptions);
99
+ /** @internal Called by TestQueue when a job is added. */
100
+ onJobAdded(): void;
101
+ /** Pull and process waiting jobs up to concurrency. */
102
+ private drain;
103
+ private processAvailable;
104
+ private findNextWaiting;
105
+ private processJob;
106
+ /** Stop processing and detach from the queue. */
107
+ close(): Promise<void>;
108
+ }
109
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"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"}