@rudderjs/horizon 5.0.0 → 6.0.1

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/README.md CHANGED
@@ -24,7 +24,7 @@ import { Horizon } from '@rudderjs/horizon'
24
24
 
25
25
  const jobs = await Horizon.recentJobs({ queue: 'emails', perPage: 25 })
26
26
  const failed = await Horizon.failedJobs()
27
- const job = await Horizon.findJob('job-id')
27
+ const job = await Horizon.findJob('emails', 'job-id')
28
28
  const metrics = await Horizon.currentMetrics()
29
29
  const workers = await Horizon.workers()
30
30
  const count = await Horizon.jobCount('failed')
@@ -36,15 +36,16 @@ const count = await Horizon.jobCount('failed')
36
36
  |--------|---------|-------------|
37
37
  | `recentJobs(options?)` | `HorizonJob[]` | List recent jobs with optional filters |
38
38
  | `failedJobs(options?)` | `HorizonJob[]` | List failed jobs |
39
- | `findJob(id)` | `HorizonJob \| null` | Find a single job by ID |
39
+ | `findJob(queue, id)` | `HorizonJob \| null` | Find a single job by `(queue, id)` — BullMQ ids are per-queue |
40
40
  | `currentMetrics()` | `QueueMetric[]` | Latest metric snapshot per queue |
41
41
  | `workers()` | `WorkerInfo[]` | All known workers and their status |
42
42
  | `jobCount(status?)` | `number` | Count jobs, optionally by status |
43
43
 
44
44
  ## Storage Drivers
45
45
 
46
- - **`memory`** (default) — In-process, bounded by `maxJobs`. Good for development.
46
+ - **`memory`** (default) — In-process, bounded by `maxJobs`. Good for development with the `sync` queue driver.
47
47
  - **`sqlite`** — Persistent storage via `better-sqlite3`. Run `pnpm add better-sqlite3` to enable.
48
+ - **`redis`** — Cross-process storage; **required** when using `@rudderjs/queue-bullmq` so the dashboard and worker process share state. Run `pnpm add ioredis` (install as a direct dep — pnpm strict resolution won't walk to ioredis transitively through `bullmq`).
48
49
 
49
50
  ## Configuration
50
51
 
@@ -53,10 +54,16 @@ const count = await Horizon.jobCount('failed')
53
54
  export default {
54
55
  enabled: true,
55
56
  path: 'horizon', // Dashboard route prefix
56
- storage: 'memory', // 'memory' | 'sqlite'
57
+ storage: 'memory', // 'memory' | 'sqlite' | 'redis'
57
58
  sqlitePath: '.horizon.db',
59
+ redis: { // Used when storage: 'redis'
60
+ host: 'localhost',
61
+ port: 6379,
62
+ password: undefined,
63
+ prefix: 'rudderjs',
64
+ },
58
65
  maxJobs: 1000, // Max jobs in memory storage
59
- pruneAfterHours: 72, // Auto-prune old records
66
+ pruneAfterHours: 72, // Auto-prune old records (covers v1 → v2 key migration)
60
67
  metricsIntervalMs: 60_000, // Metrics polling interval
61
68
  auth: null, // Optional auth callback for dashboard
62
69
  } satisfies HorizonConfig
@@ -85,3 +92,4 @@ Horizon serves a built-in UI at `/{path}` with pages for:
85
92
  - Requires `@rudderjs/queue` for job lifecycle hooks.
86
93
  - Peers: `@rudderjs/router` and `@rudderjs/middleware` for route registration.
87
94
  - Auto-prune runs on a background interval (does not block the event loop).
95
+ - With BullMQ, `MetricsCollector` only registers in the worker process (set `RUDDERJS_QUEUE_WORKER=1` — `pnpm rudder queue:work` does this for you). The dashboard process serves `/horizon/api/queues` from the worker's last write. If the worker is offline the metrics tile freezes; jobs and failed tabs continue to work because they read live state from BullMQ.
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAa,MAAM,aAAa,CAAA;AAQ3E,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAK,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAK,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAK,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAGf;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAWrF"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAa,MAAM,aAAa,CAAA;AAQ3E,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAK,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,OAAO,CAC3B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAK,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,SAAS,CAC7B,OAAO,EAAE,cAAc,EACvB,GAAG,EAAM,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAK,UAAU,EACnB,GAAG,EAAM,WAAW,GACnB,OAAO,CAAC,IAAI,CAAC,CAGf;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAWrF"}
@@ -42,7 +42,9 @@ export async function listFailedJobs(storage, req, res) {
42
42
  res.json({ data: jobs, meta: { total } });
43
43
  }
44
44
  export async function showJob(storage, req, res) {
45
- const job = await storage.findJob(req.params['id'] ?? '');
45
+ const queue = req.params['queue'] ?? '';
46
+ const id = req.params['id'] ?? '';
47
+ const job = await storage.findJob(queue, id);
46
48
  if (!job) {
47
49
  res.status(404).json({ message: 'Job not found.' });
48
50
  return;
@@ -50,7 +52,9 @@ export async function showJob(storage, req, res) {
50
52
  res.json({ data: job });
51
53
  }
52
54
  export async function retryJob(storage, req, res) {
53
- const job = await storage.findJob(req.params['id'] ?? '');
55
+ const queue = req.params['queue'] ?? '';
56
+ const id = req.params['id'] ?? '';
57
+ const job = await storage.findJob(queue, id);
54
58
  if (!job) {
55
59
  res.status(404).json({ message: 'Job not found.' });
56
60
  return;
@@ -62,7 +66,7 @@ export async function retryJob(storage, req, res) {
62
66
  const adapter = QueueRegistry.get();
63
67
  if (adapter?.retryFailed) {
64
68
  await adapter.retryFailed(job.queue);
65
- storage.updateJob(job.id, { status: 'pending', exception: null });
69
+ storage.updateJob(job.queue, job.id, { status: 'pending', exception: null });
66
70
  res.json({ message: 'Job queued for retry.' });
67
71
  }
68
72
  else {
@@ -70,12 +74,14 @@ export async function retryJob(storage, req, res) {
70
74
  }
71
75
  }
72
76
  export async function deleteJob(storage, req, res) {
73
- const job = await storage.findJob(req.params['id'] ?? '');
77
+ const queue = req.params['queue'] ?? '';
78
+ const id = req.params['id'] ?? '';
79
+ const job = await storage.findJob(queue, id);
74
80
  if (!job) {
75
81
  res.status(404).json({ message: 'Job not found.' });
76
82
  return;
77
83
  }
78
- storage.deleteJob(job.id);
84
+ storage.deleteJob(job.queue, job.id);
79
85
  res.json({ message: 'Job deleted.' });
80
86
  }
81
87
  export async function listQueues(storage, _req, res) {
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/api/routes.ts"],"names":[],"mappings":"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"}
@@ -45,14 +45,14 @@ export class JobCollector {
45
45
  break;
46
46
  }
47
47
  case 'job.active':
48
- await this.storage.updateJob(event.jobId, {
48
+ await this.storage.updateJob(event.queue, event.jobId, {
49
49
  status: 'processing',
50
50
  startedAt: event.startedAt,
51
51
  attempts: event.attempts,
52
52
  });
53
53
  break;
54
54
  case 'job.completed':
55
- await this.storage.updateJob(event.jobId, {
55
+ await this.storage.updateJob(event.queue, event.jobId, {
56
56
  status: 'completed',
57
57
  completedAt: event.completedAt,
58
58
  duration: event.duration,
@@ -60,7 +60,7 @@ export class JobCollector {
60
60
  this.metricsCollector?.recordJobCompleted(event.queue, event.startedAt.getTime() - event.dispatchedAt.getTime(), event.duration);
61
61
  break;
62
62
  case 'job.failed':
63
- await this.storage.updateJob(event.jobId, {
63
+ await this.storage.updateJob(event.queue, event.jobId, {
64
64
  status: 'failed',
65
65
  completedAt: event.completedAt,
66
66
  ...(event.duration !== undefined ? { duration: event.duration } : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/collectors/job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"job.js","sourceRoot":"","sources":["../../src/collectors/job.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare class Horizon {
16
16
  private static store;
17
17
  static recentJobs(options?: JobListOptions): HorizonJob[] | Promise<HorizonJob[]>;
18
18
  static failedJobs(options?: JobListOptions): HorizonJob[] | Promise<HorizonJob[]>;
19
- static findJob(id: string): HorizonJob | null | Promise<HorizonJob | null>;
19
+ static findJob(queue: string, id: string): HorizonJob | null | Promise<HorizonJob | null>;
20
20
  static currentMetrics(): QueueMetric[] | Promise<QueueMetric[]>;
21
21
  static workers(): WorkerInfo[] | Promise<WorkerInfo[]>;
22
22
  static jobCount(status?: JobStatus): number | Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAA;AAMxD,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EACxD,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EACtE,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAA;AAInB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;AACjI,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAIxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,OAAO,CAA8B;IAEpD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IACzC,MAAM,CAAC,GAAG,IAAI,cAAc,GAAG,IAAI;IACnC,mEAAmE;IACnE,MAAM,CAAC,KAAK,IAAI,IAAI;CACrB;AAID,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,KAAK;IAMpB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjF,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAI1E,MAAM,CAAC,cAAc,IAAI,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI/D,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAItD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAID;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAClD,QAAQ,IAAI,IAAI;IAQV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAuE5B;AAID,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAA;AAMxD,OAAO,EAEL,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,UAAU,EACxD,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EACtE,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAA;AAInB,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAA;AACjI,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAIxD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,OAAO,CAA8B;IAEpD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IACzC,MAAM,CAAC,GAAG,IAAI,cAAc,GAAG,IAAI;IACnC,mEAAmE;IACnE,MAAM,CAAC,KAAK,IAAI,IAAI;CACrB;AAID,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAC,KAAK;IAMpB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjF,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIjF,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIzF,MAAM,CAAC,cAAc,IAAI,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAI/D,MAAM,CAAC,OAAO,IAAI,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAItD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG9D;AAID;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAClD,QAAQ,IAAI,IAAI;IAQV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAoF5B;AAID,OAAO,EAAE,qBAAqB,EAAE,KAAK,4BAA4B,EAAE,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -31,8 +31,8 @@ export class Horizon {
31
31
  static failedJobs(options) {
32
32
  return this.store().failedJobs(options);
33
33
  }
34
- static findJob(id) {
35
- return this.store().findJob(id);
34
+ static findJob(queue, id) {
35
+ return this.store().findJob(queue, id);
36
36
  }
37
37
  static currentMetrics() {
38
38
  return this.store().currentMetrics();
@@ -120,7 +120,25 @@ export class HorizonProvider extends ServiceProvider {
120
120
  const jobCollector = new JobCollector(storage, metricsCollector);
121
121
  const workerCollector = new WorkerCollector(storage);
122
122
  jobCollector.register();
123
- metricsCollector.register();
123
+ // For out-of-process queues (BullMQ), `queueObservers` events fire in
124
+ // the worker process, not the dashboard. Letting both processes poll
125
+ // `MetricsCollector.collect()` makes the dashboard write
126
+ // `throughput: 0` rows that clobber the worker's real counts via the
127
+ // shared Redis history ZSet. Gate to the worker process. Sync queue
128
+ // is in-process — dashboard IS the worker, so we let it through.
129
+ const queueDriver = (() => {
130
+ try {
131
+ return config('queue', {})?.default;
132
+ }
133
+ catch {
134
+ return undefined;
135
+ }
136
+ })();
137
+ const outOfProcessQueue = queueDriver === 'bullmq';
138
+ const isWorkerProcess = process.env['RUDDERJS_QUEUE_WORKER'] === '1';
139
+ if (!outOfProcessQueue || isWorkerProcess) {
140
+ metricsCollector.register();
141
+ }
124
142
  workerCollector.register();
125
143
  // ── Register UI + API routes ──────────────────────────
126
144
  await registerHorizonRoutes(storage, {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/routes.js CHANGED
@@ -37,9 +37,9 @@ export async function registerHorizonRoutes(storage, opts = {}) {
37
37
  router.get(`${apiPrefix}/stats`, (req, res) => getStats(storage, req, res), middleware);
38
38
  router.get(`${apiPrefix}/jobs/recent`, (req, res) => listRecentJobs(storage, req, res), middleware);
39
39
  router.get(`${apiPrefix}/jobs/failed`, (req, res) => listFailedJobs(storage, req, res), middleware);
40
- router.get(`${apiPrefix}/jobs/:id`, (req, res) => showJob(storage, req, res), middleware);
41
- router.post(`${apiPrefix}/jobs/:id/retry`, (req, res) => retryJob(storage, req, res), middleware);
42
- router.delete(`${apiPrefix}/jobs/:id`, (req, res) => deleteJob(storage, req, res), middleware);
40
+ router.get(`${apiPrefix}/jobs/:queue/:id`, (req, res) => showJob(storage, req, res), middleware);
41
+ router.post(`${apiPrefix}/jobs/:queue/:id/retry`, (req, res) => retryJob(storage, req, res), middleware);
42
+ router.delete(`${apiPrefix}/jobs/:queue/:id`, (req, res) => deleteJob(storage, req, res), middleware);
43
43
  router.get(`${apiPrefix}/queues`, (req, res) => listQueues(storage, req, res), middleware);
44
44
  router.get(`${apiPrefix}/queues/:queue`, (req, res) => showQueue(storage, req, res), middleware);
45
45
  router.get(`${apiPrefix}/workers`, (req, res) => listWorkers(storage, req, res), middleware);
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
package/dist/storage.d.ts CHANGED
@@ -7,16 +7,16 @@ export declare class MemoryStorage implements HorizonStorage {
7
7
  private readonly workerMap;
8
8
  constructor(maxJobs?: number);
9
9
  recordJob(job: HorizonJob): void;
10
- updateJob(id: string, updates: Partial<HorizonJob>): void;
10
+ updateJob(queue: string, id: string, updates: Partial<HorizonJob>): void;
11
11
  recentJobs(options?: JobListOptions): HorizonJob[];
12
12
  failedJobs(options?: JobListOptions): HorizonJob[];
13
- findJob(id: string): HorizonJob | null;
13
+ findJob(queue: string, id: string): HorizonJob | null;
14
14
  recordMetric(metric: QueueMetric): void;
15
15
  metrics(queue: string, since: Date): QueueMetric[];
16
16
  currentMetrics(): QueueMetric[];
17
17
  recordWorker(worker: WorkerInfo): void;
18
18
  workers(): WorkerInfo[];
19
- deleteJob(id: string): void;
19
+ deleteJob(queue: string, id: string): void;
20
20
  pruneOlderThan(date: Date): void;
21
21
  jobCount(status?: JobStatus): number;
22
22
  private filterJobs;
@@ -28,16 +28,16 @@ export declare class SqliteStorage implements HorizonStorage {
28
28
  private getDb;
29
29
  private migrate;
30
30
  recordJob(job: HorizonJob): void;
31
- updateJob(id: string, updates: Partial<HorizonJob>): void;
31
+ updateJob(queue: string, id: string, updates: Partial<HorizonJob>): void;
32
32
  recentJobs(options?: JobListOptions): HorizonJob[];
33
33
  failedJobs(options?: JobListOptions): HorizonJob[];
34
- findJob(id: string): HorizonJob | null;
34
+ findJob(queue: string, id: string): HorizonJob | null;
35
35
  recordMetric(metric: QueueMetric): void;
36
36
  metrics(queue: string, since: Date): QueueMetric[];
37
37
  currentMetrics(): QueueMetric[];
38
38
  recordWorker(worker: WorkerInfo): void;
39
39
  workers(): WorkerInfo[];
40
- deleteJob(id: string): void;
40
+ deleteJob(queue: string, id: string): void;
41
41
  pruneOlderThan(date: Date): void;
42
42
  jobCount(status?: JobStatus): number;
43
43
  private queryJobs;
@@ -61,12 +61,14 @@ export declare class RedisStorage implements HorizonStorage {
61
61
  private getClient;
62
62
  private connectionOpts;
63
63
  private k;
64
+ private member;
65
+ private parseMember;
64
66
  recordJob(job: HorizonJob): Promise<void>;
65
- updateJob(id: string, updates: Partial<HorizonJob>): Promise<void>;
67
+ updateJob(queue: string, id: string, updates: Partial<HorizonJob>): Promise<void>;
66
68
  recentJobs(options?: JobListOptions): Promise<HorizonJob[]>;
67
69
  failedJobs(options?: JobListOptions): Promise<HorizonJob[]>;
68
- findJob(id: string): Promise<HorizonJob | null>;
69
- deleteJob(id: string): Promise<void>;
70
+ findJob(queue: string, id: string): Promise<HorizonJob | null>;
71
+ deleteJob(queue: string, id: string): Promise<void>;
70
72
  pruneOlderThan(date: Date): Promise<void>;
71
73
  jobCount(status?: JobStatus): Promise<number>;
72
74
  recordMetric(metric: QueueMetric): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/storage.js CHANGED
@@ -15,8 +15,8 @@ export class MemoryStorage {
15
15
  this.jobs.length = this.maxJobs;
16
16
  }
17
17
  }
18
- updateJob(id, updates) {
19
- const job = this.jobs.find(j => j.id === id);
18
+ updateJob(queue, id, updates) {
19
+ const job = this.jobs.find(j => j.queue === queue && j.id === id);
20
20
  if (job)
21
21
  Object.assign(job, updates);
22
22
  }
@@ -26,8 +26,8 @@ export class MemoryStorage {
26
26
  failedJobs(options) {
27
27
  return this.filterJobs({ ...options, status: 'failed' });
28
28
  }
29
- findJob(id) {
30
- return this.jobs.find(j => j.id === id) ?? null;
29
+ findJob(queue, id) {
30
+ return this.jobs.find(j => j.queue === queue && j.id === id) ?? null;
31
31
  }
32
32
  recordMetric(metric) {
33
33
  this.latestMetrics.set(metric.queue, metric);
@@ -54,8 +54,8 @@ export class MemoryStorage {
54
54
  workers() {
55
55
  return [...this.workerMap.values()];
56
56
  }
57
- deleteJob(id) {
58
- const idx = this.jobs.findIndex(j => j.id === id);
57
+ deleteJob(queue, id) {
58
+ const idx = this.jobs.findIndex(j => j.queue === queue && j.id === id);
59
59
  if (idx !== -1)
60
60
  this.jobs.splice(idx, 1);
61
61
  }
@@ -112,11 +112,14 @@ export class SqliteStorage {
112
112
  return this.db;
113
113
  }
114
114
  migrate() {
115
+ // v2 table: composite PK so cross-queue id collisions (BullMQ assigns ids
116
+ // per-queue) don't clobber records. v1's `horizon_jobs` (single-column id
117
+ // PK) is left untouched on upgrade — pruneAfterHours ages it out.
115
118
  this.db.exec(`
116
- CREATE TABLE IF NOT EXISTS horizon_jobs (
117
- id TEXT PRIMARY KEY,
118
- name TEXT NOT NULL,
119
+ CREATE TABLE IF NOT EXISTS horizon_jobs_v2 (
119
120
  queue TEXT NOT NULL,
121
+ id TEXT NOT NULL,
122
+ name TEXT NOT NULL,
120
123
  status TEXT NOT NULL,
121
124
  payload TEXT NOT NULL DEFAULT '{}',
122
125
  attempts INTEGER NOT NULL DEFAULT 0,
@@ -125,10 +128,11 @@ export class SqliteStorage {
125
128
  started_at TEXT,
126
129
  completed_at TEXT,
127
130
  duration INTEGER,
128
- tags TEXT NOT NULL DEFAULT '[]'
131
+ tags TEXT NOT NULL DEFAULT '[]',
132
+ PRIMARY KEY (queue, id)
129
133
  );
130
- CREATE INDEX IF NOT EXISTS idx_horizon_status ON horizon_jobs(status, dispatched_at);
131
- CREATE INDEX IF NOT EXISTS idx_horizon_queue ON horizon_jobs(queue, dispatched_at);
134
+ CREATE INDEX IF NOT EXISTS idx_horizon_status ON horizon_jobs_v2(status, dispatched_at);
135
+ CREATE INDEX IF NOT EXISTS idx_horizon_queue ON horizon_jobs_v2(queue, dispatched_at);
132
136
 
133
137
  CREATE TABLE IF NOT EXISTS horizon_metrics (
134
138
  id TEXT PRIMARY KEY,
@@ -156,10 +160,10 @@ export class SqliteStorage {
156
160
  `);
157
161
  }
158
162
  recordJob(job) {
159
- this.getDb().prepare(`INSERT INTO horizon_jobs (id, name, queue, status, payload, attempts, exception, dispatched_at, started_at, completed_at, duration, tags)
160
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(job.id, job.name, job.queue, job.status, JSON.stringify(job.payload), job.attempts, job.exception, job.dispatchedAt.toISOString(), job.startedAt?.toISOString() ?? null, job.completedAt?.toISOString() ?? null, job.duration, JSON.stringify(job.tags));
163
+ this.getDb().prepare(`INSERT OR REPLACE INTO horizon_jobs_v2 (queue, id, name, status, payload, attempts, exception, dispatched_at, started_at, completed_at, duration, tags)
164
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`).run(job.queue, job.id, job.name, job.status, JSON.stringify(job.payload), job.attempts, job.exception, job.dispatchedAt.toISOString(), job.startedAt?.toISOString() ?? null, job.completedAt?.toISOString() ?? null, job.duration, JSON.stringify(job.tags));
161
165
  }
162
- updateJob(id, updates) {
166
+ updateJob(queue, id, updates) {
163
167
  const sets = [];
164
168
  const params = [];
165
169
  if (updates.status !== undefined) {
@@ -188,8 +192,8 @@ export class SqliteStorage {
188
192
  }
189
193
  if (sets.length === 0)
190
194
  return;
191
- params.push(id);
192
- this.getDb().prepare(`UPDATE horizon_jobs SET ${sets.join(', ')} WHERE id = ?`).run(...params);
195
+ params.push(queue, id);
196
+ this.getDb().prepare(`UPDATE horizon_jobs_v2 SET ${sets.join(', ')} WHERE queue = ? AND id = ?`).run(...params);
193
197
  }
194
198
  recentJobs(options) {
195
199
  return this.queryJobs(options);
@@ -197,8 +201,8 @@ export class SqliteStorage {
197
201
  failedJobs(options) {
198
202
  return this.queryJobs({ ...options, status: 'failed' });
199
203
  }
200
- findJob(id) {
201
- const row = this.getDb().prepare('SELECT * FROM horizon_jobs WHERE id = ?').get(id);
204
+ findJob(queue, id) {
205
+ const row = this.getDb().prepare('SELECT * FROM horizon_jobs_v2 WHERE queue = ? AND id = ?').get(queue, id);
202
206
  return row ? this.jobFromRow(row) : null;
203
207
  }
204
208
  recordMetric(metric) {
@@ -231,21 +235,21 @@ export class SqliteStorage {
231
235
  lastJobAt: r['last_job_at'] ? new Date(r['last_job_at']) : null,
232
236
  }));
233
237
  }
234
- deleteJob(id) {
235
- this.getDb().prepare('DELETE FROM horizon_jobs WHERE id = ?').run(id);
238
+ deleteJob(queue, id) {
239
+ this.getDb().prepare('DELETE FROM horizon_jobs_v2 WHERE queue = ? AND id = ?').run(queue, id);
236
240
  }
237
241
  pruneOlderThan(date) {
238
242
  const iso = date.toISOString();
239
243
  const db = this.getDb();
240
- db.prepare('DELETE FROM horizon_jobs WHERE dispatched_at < ?').run(iso);
244
+ db.prepare('DELETE FROM horizon_jobs_v2 WHERE dispatched_at < ?').run(iso);
241
245
  db.prepare('DELETE FROM horizon_metrics WHERE created_at < ?').run(iso);
242
246
  }
243
247
  jobCount(status) {
244
248
  if (status) {
245
- const row = this.getDb().prepare('SELECT COUNT(*) as cnt FROM horizon_jobs WHERE status = ?').get(status);
249
+ const row = this.getDb().prepare('SELECT COUNT(*) as cnt FROM horizon_jobs_v2 WHERE status = ?').get(status);
246
250
  return row.cnt;
247
251
  }
248
- const row = this.getDb().prepare('SELECT COUNT(*) as cnt FROM horizon_jobs').get();
252
+ const row = this.getDb().prepare('SELECT COUNT(*) as cnt FROM horizon_jobs_v2').get();
249
253
  return row.cnt;
250
254
  }
251
255
  queryJobs(options) {
@@ -268,7 +272,7 @@ export class SqliteStorage {
268
272
  const perPage = options?.perPage ?? 50;
269
273
  const offset = (page - 1) * perPage;
270
274
  params.push(perPage, offset);
271
- const rows = this.getDb().prepare(`SELECT * FROM horizon_jobs ${where} ORDER BY dispatched_at DESC LIMIT ? OFFSET ?`).all(...params);
275
+ const rows = this.getDb().prepare(`SELECT * FROM horizon_jobs_v2 ${where} ORDER BY dispatched_at DESC LIMIT ? OFFSET ?`).all(...params);
272
276
  return rows.map(r => this.jobFromRow(r));
273
277
  }
274
278
  jobFromRow(r) {
@@ -349,8 +353,13 @@ export class RedisStorage {
349
353
  };
350
354
  }
351
355
  // ─── Keys ────────────────────────────────────────────────
356
+ //
357
+ // Job records are stored at `jobs:{queue}:{id}`. BullMQ assigns ids
358
+ // per-queue (each queue starts at 1), so keying by id alone collides
359
+ // across queues. The `recent` and `failed` ZSets store members as
360
+ // `{queue}:{id}` so the listing path can split + lookup.
352
361
  k = {
353
- job: (id) => `${this.prefix}:jobs:${id}`,
362
+ job: (queue, id) => `${this.prefix}:jobs:${queue}:${id}`,
354
363
  recent: () => `${this.prefix}:jobs:recent`,
355
364
  failed: () => `${this.prefix}:jobs:failed`,
356
365
  byQueue: (q) => `${this.prefix}:jobs:by-queue:${q}`,
@@ -359,15 +368,49 @@ export class RedisStorage {
359
368
  worker: (id) => `${this.prefix}:workers:${id}`,
360
369
  workersIndex: () => `${this.prefix}:workers`,
361
370
  };
371
+ member(queue, id) {
372
+ return `${queue}:${id}`;
373
+ }
374
+ parseMember(member) {
375
+ const idx = member.indexOf(':');
376
+ if (idx === -1)
377
+ return null; // legacy v1 member; skip
378
+ return { queue: member.slice(0, idx), id: member.slice(idx + 1) };
379
+ }
362
380
  // ─── Jobs ────────────────────────────────────────────────
363
381
  async recordJob(job) {
364
382
  const r = await this.getClient();
365
- await r.hset(this.k.job(job.id), this.jobToHash(job));
383
+ const m = this.member(job.queue, job.id);
384
+ const key = this.k.job(job.queue, job.id);
385
+ // Idempotent fields — same value across the lifecycle, safe to overwrite.
386
+ await r.hset(key, {
387
+ id: job.id,
388
+ name: job.name,
389
+ queue: job.queue,
390
+ payload: JSON.stringify(job.payload),
391
+ dispatchedAt: job.dispatchedAt.toISOString(),
392
+ tags: JSON.stringify(job.tags),
393
+ });
394
+ // Lifecycle fields — set only if not already written. The dashboard
395
+ // process emits `job.dispatched` and queues an async storage write via
396
+ // microtask; the worker process can update the record to `processing`
397
+ // / `completed` BEFORE that microtask flushes (the dispatcher races
398
+ // BullMQ's polling). Plain HSET would let a late dispatched-write
399
+ // clobber the worker's status. HSETNX makes recordJob idempotent for
400
+ // these fields so worker updates always win.
401
+ await Promise.all([
402
+ r.hsetnx(key, 'status', job.status),
403
+ r.hsetnx(key, 'attempts', job.attempts),
404
+ r.hsetnx(key, 'startedAt', job.startedAt ? job.startedAt.toISOString() : ''),
405
+ r.hsetnx(key, 'completedAt', job.completedAt ? job.completedAt.toISOString() : ''),
406
+ r.hsetnx(key, 'duration', job.duration ?? -1),
407
+ r.hsetnx(key, 'exception', job.exception ?? ''),
408
+ ]);
366
409
  const score = job.dispatchedAt.getTime();
367
- await r.zadd(this.k.recent(), score, job.id);
410
+ await r.zadd(this.k.recent(), score, m);
368
411
  await r.zadd(this.k.byQueue(job.queue), score, job.id);
369
412
  if (job.status === 'failed') {
370
- await r.zadd(this.k.failed(), score, job.id);
413
+ await r.zadd(this.k.failed(), score, m);
371
414
  }
372
415
  // Cap recent index to maxJobs (drop oldest)
373
416
  const count = await r.zcard(this.k.recent());
@@ -375,7 +418,7 @@ export class RedisStorage {
375
418
  await r.zremrangebyrank(this.k.recent(), 0, count - this.maxJobs - 1);
376
419
  }
377
420
  }
378
- async updateJob(id, updates) {
421
+ async updateJob(queue, id, updates) {
379
422
  const r = await this.getClient();
380
423
  const fields = {};
381
424
  if (updates.status !== undefined)
@@ -396,14 +439,15 @@ export class RedisStorage {
396
439
  fields['tags'] = JSON.stringify(updates.tags);
397
440
  if (Object.keys(fields).length === 0)
398
441
  return;
399
- await r.hset(this.k.job(id), fields);
442
+ await r.hset(this.k.job(queue, id), fields);
443
+ const m = this.member(queue, id);
400
444
  if (updates.status === 'failed') {
401
- const job = await this.findJob(id);
445
+ const job = await this.findJob(queue, id);
402
446
  if (job)
403
- await r.zadd(this.k.failed(), job.dispatchedAt.getTime(), id);
447
+ await r.zadd(this.k.failed(), job.dispatchedAt.getTime(), m);
404
448
  }
405
449
  else if (updates.status === 'completed') {
406
- await r.zrem(this.k.failed(), id);
450
+ await r.zrem(this.k.failed(), m);
407
451
  }
408
452
  }
409
453
  async recentJobs(options) {
@@ -412,26 +456,30 @@ export class RedisStorage {
412
456
  async failedJobs(options) {
413
457
  return this.listJobs(this.k.failed(), { ...options, status: 'failed' });
414
458
  }
415
- async findJob(id) {
459
+ async findJob(queue, id) {
416
460
  const r = await this.getClient();
417
- const hash = await r.hgetall(this.k.job(id));
461
+ const hash = await r.hgetall(this.k.job(queue, id));
418
462
  if (!hash || Object.keys(hash).length === 0)
419
463
  return null;
420
464
  return this.jobFromHash(hash);
421
465
  }
422
- async deleteJob(id) {
466
+ async deleteJob(queue, id) {
423
467
  const r = await this.getClient();
424
- await r.del(this.k.job(id));
425
- await r.zrem(this.k.recent(), id);
426
- await r.zrem(this.k.failed(), id);
468
+ const m = this.member(queue, id);
469
+ await r.del(this.k.job(queue, id));
470
+ await r.zrem(this.k.recent(), m);
471
+ await r.zrem(this.k.failed(), m);
427
472
  }
428
473
  async pruneOlderThan(date) {
429
474
  const r = await this.getClient();
430
475
  const cut = date.getTime();
431
- const ids = await r.zrangebyscore(this.k.recent(), '-inf', cut);
432
- if (ids.length === 0)
476
+ const members = await r.zrangebyscore(this.k.recent(), '-inf', cut);
477
+ if (members.length === 0)
433
478
  return;
434
- await Promise.all(ids.map(id => r.del(this.k.job(id))));
479
+ await Promise.all(members.map(m => {
480
+ const parsed = this.parseMember(m);
481
+ return parsed ? r.del(this.k.job(parsed.queue, parsed.id)) : Promise.resolve(0);
482
+ }));
435
483
  await r.zremrangebyscore(this.k.recent(), '-inf', cut);
436
484
  await r.zremrangebyscore(this.k.failed(), '-inf', cut);
437
485
  }
@@ -468,20 +516,16 @@ export class RedisStorage {
468
516
  }
469
517
  async currentMetrics() {
470
518
  const r = await this.getClient();
471
- // Discover queue names by scanning the recent-jobs zset members and
472
- // bouncing through their queue field. Cheap because maxJobs is bounded.
473
- const ids = await r.zrevrange(this.k.recent(), 0, Math.min(this.maxJobs, 500) - 1);
474
- if (ids.length === 0)
519
+ // Discover queue names directly from the recent-jobs zset members
520
+ // (now `{queue}:{id}`) no per-record hgetall needed.
521
+ const members = await r.zrevrange(this.k.recent(), 0, Math.min(this.maxJobs, 500) - 1);
522
+ if (members.length === 0)
475
523
  return [];
476
- const pipe = r.pipeline();
477
- for (const id of ids)
478
- pipe.hgetall(this.k.job(id));
479
- const rows = await pipe.exec() ?? [];
480
524
  const queues = new Set();
481
- for (const [, hash] of rows) {
482
- const h = hash;
483
- if (h?.['queue'])
484
- queues.add(h['queue']);
525
+ for (const m of members) {
526
+ const parsed = this.parseMember(m);
527
+ if (parsed)
528
+ queues.add(parsed.queue);
485
529
  }
486
530
  const metrics = [];
487
531
  for (const q of queues) {
@@ -561,14 +605,24 @@ export class RedisStorage {
561
605
  name: h['name'] ?? '',
562
606
  queue: h['queue'] ?? 'default',
563
607
  status: h['status'] ?? 'pending',
564
- payload: h['payload'] ? JSON.parse(h['payload']) : {},
608
+ payload: h['payload'] ? (() => { try {
609
+ return JSON.parse(h['payload']);
610
+ }
611
+ catch {
612
+ return {};
613
+ } })() : {},
565
614
  attempts: parseInt(h['attempts'] ?? '0', 10),
566
615
  exception: h['exception'] ? h['exception'] : null,
567
616
  dispatchedAt: h['dispatchedAt'] ? new Date(h['dispatchedAt']) : new Date(0),
568
617
  startedAt: h['startedAt'] ? new Date(h['startedAt']) : null,
569
618
  completedAt: h['completedAt'] ? new Date(h['completedAt']) : null,
570
619
  duration: dur < 0 ? null : dur,
571
- tags: h['tags'] ? JSON.parse(h['tags']) : [],
620
+ tags: h['tags'] ? (() => { try {
621
+ return JSON.parse(h['tags']);
622
+ }
623
+ catch {
624
+ return [];
625
+ } })() : [],
572
626
  };
573
627
  }
574
628
  metricToHash(m) {
@@ -594,12 +648,15 @@ export class RedisStorage {
594
648
  const page = options?.page ?? 1;
595
649
  const perPage = options?.perPage ?? 50;
596
650
  const start = (page - 1) * perPage;
597
- const ids = await r.zrevrange(indexKey, start, start + perPage * 4);
598
- if (ids.length === 0)
651
+ const members = await r.zrevrange(indexKey, start, start + perPage * 4);
652
+ if (members.length === 0)
599
653
  return [];
600
654
  const pipe = r.pipeline();
601
- for (const id of ids)
602
- pipe.hgetall(this.k.job(id));
655
+ for (const m of members) {
656
+ const parsed = this.parseMember(m);
657
+ if (parsed)
658
+ pipe.hgetall(this.k.job(parsed.queue, parsed.id));
659
+ }
603
660
  const rows = await pipe.exec() ?? [];
604
661
  let jobs = [];
605
662
  for (const [, hash] of rows) {
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -35,14 +35,18 @@ export interface WorkerInfo {
35
35
  export interface HorizonStorage {
36
36
  /** Record a job event (dispatch, start, complete, fail) */
37
37
  recordJob(job: HorizonJob): void | Promise<void>;
38
- /** Update an existing job record */
39
- updateJob(id: string, updates: Partial<HorizonJob>): void | Promise<void>;
38
+ /**
39
+ * Update an existing job record. Records are keyed by `(queue, id)` because
40
+ * BullMQ assigns ids per-queue starting at 1 — `default:1` and `priority:1`
41
+ * collide on id alone.
42
+ */
43
+ updateJob(queue: string, id: string, updates: Partial<HorizonJob>): void | Promise<void>;
40
44
  /** List recent jobs */
41
45
  recentJobs(options?: JobListOptions): HorizonJob[] | Promise<HorizonJob[]>;
42
46
  /** List failed jobs */
43
47
  failedJobs(options?: JobListOptions): HorizonJob[] | Promise<HorizonJob[]>;
44
- /** Get a single job by ID */
45
- findJob(id: string): HorizonJob | null | Promise<HorizonJob | null>;
48
+ /** Get a single job by `(queue, id)` */
49
+ findJob(queue: string, id: string): HorizonJob | null | Promise<HorizonJob | null>;
46
50
  /** Record a per-minute metric snapshot for a queue */
47
51
  recordMetric(metric: QueueMetric): void | Promise<void>;
48
52
  /** Get metric history for a queue */
@@ -53,8 +57,8 @@ export interface HorizonStorage {
53
57
  recordWorker(worker: WorkerInfo): void | Promise<void>;
54
58
  /** List all known workers */
55
59
  workers(): WorkerInfo[] | Promise<WorkerInfo[]>;
56
- /** Delete a failed job record */
57
- deleteJob(id: string): void | Promise<void>;
60
+ /** Delete a job record by `(queue, id)` */
61
+ deleteJob(queue: string, id: string): void | Promise<void>;
58
62
  /** Delete all data older than date */
59
63
  pruneOlderThan(date: Date): void | Promise<void>;
60
64
  /** Count jobs by status */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAiH9D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAY,IAAI;IACvB,IAAI,EAAe,SAAS;IAC5B,OAAO,EAAY,QAAiB;IACpC,UAAU,EAAS,aAAa;IAChC,KAAK,EAAc,EAAwB;IAC3C,OAAO,EAAY,IAAI;IACvB,eAAe,EAAI,EAAE;IACrB,iBAAiB,EAAE,MAAM;IACzB,IAAI,EAAe,IAA6D;CACjF,CAAA"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAqH9D,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAY,IAAI;IACvB,IAAI,EAAe,SAAS;IAC5B,OAAO,EAAY,QAAiB;IACpC,UAAU,EAAS,aAAa;IAChC,KAAK,EAAc,EAAwB;IAC3C,OAAO,EAAY,IAAI;IACvB,eAAe,EAAI,EAAE;IACrB,iBAAiB,EAAE,MAAM;IACzB,IAAI,EAAe,IAA6D;CACjF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"_jobTable.d.ts","sourceRoot":"","sources":["../../../src/views/vanilla/_jobTable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAgB,QAAQ,IAAI,MAAM,CA+CjC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA+BnD"}
1
+ {"version":3,"file":"_jobTable.d.ts","sourceRoot":"","sources":["../../../src/views/vanilla/_jobTable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,wBAAgB,QAAQ,IAAI,MAAM,CA+CjC;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiCnD"}
@@ -21,7 +21,7 @@ export function jobTable() {
21
21
  </tr>
22
22
  </thead>
23
23
  <tbody class="divide-y divide-gray-100">
24
- <template x-for="job in jobs" :key="job.id">
24
+ <template x-for="job in jobs" :key="job.queue + ':' + job.id">
25
25
  <tr class="hover:bg-gray-50">
26
26
  <td class="px-4 py-3 font-mono text-xs" x-text="job.name"></td>
27
27
  <td class="px-4 py-3" x-text="job.queue"></td>
@@ -33,9 +33,9 @@ export function jobTable() {
33
33
  <td class="px-4 py-3 text-right" x-text="job.duration ? job.duration + 'ms' : '—'"></td>
34
34
  <td class="px-4 py-3 text-right text-gray-400 text-xs" x-text="ago(job.dispatchedAt)"></td>
35
35
  <td class="px-4 py-3 text-right">
36
- <button x-show="job.status === 'failed'" @click="retry(job.id)"
36
+ <button x-show="job.status === 'failed'" @click="retry(job)"
37
37
  class="text-xs text-teal-600 hover:text-teal-800 mr-2">Retry</button>
38
- <button @click="remove(job.id)"
38
+ <button @click="remove(job)"
39
39
  class="text-xs text-red-500 hover:text-red-700">Delete</button>
40
40
  </td>
41
41
  </tr>
@@ -67,12 +67,14 @@ export function jobScript(apiPrefix) {
67
67
  this.jobs = data.data || []
68
68
  this.meta = data.meta || { total: 0 }
69
69
  },
70
- async retry(id) {
71
- await fetch('${apiPrefix}/jobs/' + id + '/retry', { method: 'POST' })
70
+ async retry(job) {
71
+ const path = encodeURIComponent(job.queue) + '/' + encodeURIComponent(job.id)
72
+ await fetch('${apiPrefix}/jobs/' + path + '/retry', { method: 'POST' })
72
73
  this.load()
73
74
  },
74
- async remove(id) {
75
- await fetch('${apiPrefix}/jobs/' + id, { method: 'DELETE' })
75
+ async remove(job) {
76
+ const path = encodeURIComponent(job.queue) + '/' + encodeURIComponent(job.id)
77
+ await fetch('${apiPrefix}/jobs/' + path, { method: 'DELETE' })
76
78
  this.load()
77
79
  },
78
80
  ago(dateStr) {
@@ -1 +1 @@
1
- {"version":3,"file":"_jobTable.js","sourceRoot":"","sources":["../../../src/views/vanilla/_jobTable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6CI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO;;;;;;;;wCAQ+B,SAAS;;;;;2BAKtB,SAAS;;;;2BAIT,SAAS;;;;;;;;;;;;cAYtB,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"_jobTable.js","sourceRoot":"","sources":["../../../src/views/vanilla/_jobTable.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,UAAU,QAAQ;IACtB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA6CI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,OAAO;;;;;;;;wCAQ+B,SAAS;;;;;;2BAMtB,SAAS;;;;;2BAKT,SAAS;;;;;;;;;;;;cAYtB,CAAA;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/horizon",
3
- "version": "5.0.0",
3
+ "version": "6.0.1",
4
4
  "rudderjs": {
5
5
  "provider": "HorizonProvider",
6
6
  "stage": "monitoring"
@@ -25,13 +25,13 @@
25
25
  }
26
26
  },
27
27
  "dependencies": {
28
- "@rudderjs/core": "^1.0.0",
29
- "@rudderjs/contracts": "^1.1.0",
30
- "@rudderjs/queue": "^4.1.0"
28
+ "@rudderjs/core": "^1.1.3",
29
+ "@rudderjs/contracts": "^1.5.0",
30
+ "@rudderjs/queue": "^4.1.2"
31
31
  },
32
32
  "peerDependencies": {
33
- "@rudderjs/router": "^1.0.0",
34
- "@rudderjs/middleware": "^1.0.0"
33
+ "@rudderjs/router": "^1.2.0",
34
+ "@rudderjs/middleware": "^1.0.2"
35
35
  },
36
36
  "optionalDependencies": {
37
37
  "better-sqlite3": "^11.0.0",