pg-boss 12.15.0 → 12.16.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/manager.js CHANGED
@@ -34,7 +34,7 @@ class Manager extends EventEmitter {
34
34
  this.db = db;
35
35
  this.wipTs = Date.now();
36
36
  this.workers = new Map();
37
- this.queues = null;
37
+ this.queues = {};
38
38
  this.pendingOffWorkCleanups = new Set();
39
39
  this.#spies = new Map();
40
40
  this.#localGroupActive = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
package/dist/plans.js CHANGED
@@ -581,7 +581,7 @@ function deleteJobsById(schema, table) {
581
581
  WITH results as (
582
582
  DELETE FROM ${schema}.${table}
583
583
  WHERE name = $1
584
- AND id IN (SELECT UNNEST($2::uuid[]))
584
+ AND id IN (SELECT UNNEST($2::uuid[]))
585
585
  RETURNING 1
586
586
  )
587
587
  SELECT COUNT(*) from results
@@ -758,36 +758,52 @@ function fetchNextJob(options) {
758
758
  groupConcurrency.tiers &&
759
759
  Object.keys(groupConcurrency.tiers).length > 0;
760
760
  const params = buildFetchParams(options);
761
- const whereConditions = [
762
- `name = '${name}'`,
763
- `state < '${JOB_STATES.active}'`,
764
- !ignoreStartAfter ? 'start_after < now()' : '',
765
- hasIgnoreSingletons ? `singleton_key <> ALL(${params.ignoreSingletonsParam})` : '',
766
- hasIgnoreGroups ? `(group_id IS NULL OR group_id <> ALL(${params.ignoreGroupsParam}))` : '',
767
- hasMinPriority ? `priority >= ${params.minPriorityParam}` : '',
768
- hasMaxPriority ? `priority <= ${params.maxPriorityParam}` : ''
769
- ].filter(Boolean).join(' AND ');
770
761
  const selectCols = [
771
- 'id',
772
- singletonFetch ? 'singleton_key' : '',
773
- hasGroupConcurrency ? 'group_id, group_tier' : ''
762
+ 'j.id',
763
+ singletonFetch ? 'j.singleton_key' : '',
764
+ hasGroupConcurrency ? 'j.group_id, j.group_tier' : ''
774
765
  ].filter(Boolean).join(', ');
766
+ // MATERIALIZED forces Postgres to compute this aggregation once and cache the
767
+ // result. Without it, Postgres 12+ may inline the CTE and re-evaluate the
768
+ // COUNT query at each reference site. active_group_counts is referenced twice:
769
+ // once in the next CTE join (to pre-filter saturated groups before LIMIT) and
770
+ // once in group_ranking (to enforce the per-batch concurrency limit).
775
771
  const activeGroupCountsCte = hasGroupConcurrency
776
- ? `active_group_counts AS (
772
+ ? `active_group_counts AS MATERIALIZED (
777
773
  SELECT group_id, COUNT(*)::int as active_cnt
778
774
  FROM ${schema}.${table}
779
775
  WHERE name = '${name}' AND state = '${JOB_STATES.active}' AND group_id IS NOT NULL
780
776
  GROUP BY group_id
781
777
  ), `
782
778
  : '';
779
+ // Column references are qualified with j. throughout so both the base case and
780
+ // the groupConcurrency branch (which joins active_group_counts) share one set of
781
+ // expressions. The join introduces agc.group_id which would otherwise be ambiguous.
782
+ const whereConditions = [
783
+ `j.name = '${name}'`,
784
+ `j.state < '${JOB_STATES.active}'`,
785
+ !ignoreStartAfter ? 'j.start_after < now()' : '',
786
+ hasIgnoreSingletons ? `j.singleton_key <> ALL(${params.ignoreSingletonsParam})` : '',
787
+ hasIgnoreGroups ? `(j.group_id IS NULL OR j.group_id <> ALL(${params.ignoreGroupsParam}))` : '',
788
+ hasMinPriority ? `j.priority >= ${params.minPriorityParam}` : '',
789
+ hasMaxPriority ? `j.priority <= ${params.maxPriorityParam}` : '',
790
+ hasGroupConcurrency
791
+ ? `(j.group_id IS NULL
792
+ OR agc.active_cnt IS NULL
793
+ OR agc.active_cnt < ${hasTiers
794
+ ? `COALESCE((${params.tiersParam} ->> j.group_tier)::int, ${params.defaultGroupLimitParam})`
795
+ : params.defaultGroupLimitParam})`
796
+ : ''
797
+ ].filter(Boolean).join('\n AND ');
783
798
  const nextCte = `
784
799
  next AS (
785
800
  SELECT ${selectCols}
786
- FROM ${schema}.${table}
801
+ FROM ${schema}.${table} j
802
+ ${hasGroupConcurrency ? 'LEFT JOIN active_group_counts agc ON j.group_id = agc.group_id' : ''}
787
803
  WHERE ${whereConditions}
788
- ORDER BY ${priority ? 'priority desc, ' : ''}${orderByCreatedOn ? 'created_on, ' : ''}id
804
+ ORDER BY ${priority ? 'j.priority desc, ' : ''}${orderByCreatedOn ? 'j.created_on, ' : ''}j.id
789
805
  LIMIT ${limit}
790
- FOR UPDATE SKIP LOCKED
806
+ FOR UPDATE OF j SKIP LOCKED
791
807
  )`;
792
808
  const singletonCte = singletonFetch
793
809
  ? `, singleton_ranking AS (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pg-boss",
3
- "version": "12.15.0",
3
+ "version": "12.16.0",
4
4
  "description": "Queueing jobs in Postgres from Node.js like a boss",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,7 +20,7 @@
20
20
  "@tsconfig/node-ts": "^23.6.4",
21
21
  "@tsconfig/node22": "^22.0.5",
22
22
  "@types/luxon": "^3.7.1",
23
- "@types/node": "^22.19.15",
23
+ "@types/node": "^22.19.17",
24
24
  "@types/pg": "^8.20.0",
25
25
  "@vitest/coverage-v8": "^4.1.2",
26
26
  "cli-testlab": "^6.0.1",
@@ -28,7 +28,7 @@
28
28
  "luxon": "^3.7.2",
29
29
  "neostandard": "^0.13.0",
30
30
  "tsx": "^4.21.0",
31
- "typescript": "^6.0.2",
31
+ "typescript": "^6.0.3",
32
32
  "vitest": "^4.0.18"
33
33
  },
34
34
  "scripts": {