pg-boss 12.6.0 → 12.7.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
@@ -52,6 +52,108 @@ This will likely cater the most to teams already familiar with the simplicity of
52
52
  * Serverless function compatible
53
53
  * Multi-master compatible (for example, in a Kubernetes ReplicaSet)
54
54
 
55
+ ## CLI
56
+
57
+ pg-boss includes a command-line interface for managing database migrations without writing code. This is useful for CI/CD pipelines, database setup scripts, or manual schema management.
58
+
59
+ ### Installation
60
+
61
+ When installed globally, the CLI is available as `pg-boss`:
62
+
63
+ ```bash
64
+ npm install -g pg-boss
65
+ pg-boss --help
66
+ ```
67
+
68
+ Or run directly with npx:
69
+
70
+ ```bash
71
+ npx pg-boss --help
72
+ ```
73
+
74
+ ### Commands
75
+
76
+ | Command | Description |
77
+ |---------|-------------|
78
+ | `migrate` | Run pending migrations (creates schema if not exists) |
79
+ | `create` | Create initial pg-boss schema |
80
+ | `version` | Show current schema version |
81
+ | `rollback` | Rollback the last migration |
82
+ | `plans <subcommand>` | Output SQL without executing (subcommands: `create`, `migrate`, `rollback`) |
83
+
84
+ ### Connection Configuration
85
+
86
+ The CLI supports multiple ways to configure the database connection, in order of precedence:
87
+
88
+ 1. **Command-line arguments**
89
+ ```bash
90
+ pg-boss migrate --connection-string postgres://user:pass@host/database
91
+ # or individual options
92
+ pg-boss migrate --host localhost --port 5432 --database mydb --user postgres --password secret
93
+ ```
94
+
95
+ 2. **Environment variables**
96
+ ```bash
97
+ PGBOSS_DATABASE_URL=postgres://user:pass@host/database pg-boss migrate
98
+ # or individual variables
99
+ PGBOSS_HOST=localhost PGBOSS_PORT=5432 PGBOSS_DATABASE=mydb PGBOSS_USER=postgres PGBOSS_PASSWORD=secret pg-boss migrate
100
+ ```
101
+
102
+ This allows admin credentials for migrations to coexist with regular application database credentials (e.g., `DATABASE_URL` for the app, `PGBOSS_DATABASE_URL` for migrations).
103
+
104
+ 3. **Config file** (pgboss.json or .pgbossrc in current directory, or specify with `--config`)
105
+ ```bash
106
+ pg-boss migrate --config ./config/pgboss.json
107
+ ```
108
+
109
+ Config file format:
110
+ ```json
111
+ {
112
+ "host": "localhost",
113
+ "port": 5432,
114
+ "database": "mydb",
115
+ "user": "postgres",
116
+ "password": "secret",
117
+ "schema": "pgboss"
118
+ }
119
+ ```
120
+
121
+ ### Options
122
+
123
+ | Option | Short | Description |
124
+ |--------|-------|-------------|
125
+ | `--connection-string` | `-c` | PostgreSQL connection string |
126
+ | `--host` | | Database host |
127
+ | `--port` | | Database port |
128
+ | `--database` | `-d` | Database name |
129
+ | `--user` | `-u` | Database user |
130
+ | `--password` | `-p` | Database password |
131
+ | `--schema` | `-s` | pg-boss schema name (default: pgboss) |
132
+ | `--config` | | Path to config file |
133
+ | `--dry-run` | | Show SQL without executing (for migrate, create, rollback) |
134
+
135
+ ### Examples
136
+
137
+ ```bash
138
+ # Create schema in a new database
139
+ pg-boss create --connection-string postgres://localhost/myapp
140
+
141
+ # Run migrations in CI/CD pipeline
142
+ PGBOSS_DATABASE_URL=$PGBOSS_DATABASE_URL pg-boss migrate
143
+
144
+ # Preview migration SQL before running
145
+ pg-boss migrate --connection-string postgres://localhost/myapp --dry-run
146
+
147
+ # Check current schema version
148
+ pg-boss version -c postgres://localhost/myapp
149
+
150
+ # Use a custom schema name
151
+ pg-boss migrate -c postgres://localhost/myapp --schema myapp_jobs
152
+
153
+ # Output SQL for creating schema (useful for review or manual execution)
154
+ pg-boss plans create --schema myapp_jobs
155
+ ```
156
+
55
157
  ## Requirements
56
158
  * Node 22.12 or higher for CommonJS's require(esm)
57
159
  * PostgreSQL 13 or higher
package/dist/attorney.js CHANGED
@@ -209,7 +209,7 @@ function applyOpsConfig(config) {
209
209
  assert(config.queueCacheIntervalSeconds / 60 / 60 <= POLICY.MAX_EXPIRATION_HOURS, `configuration assert: queueCacheIntervalSeconds cannot exceed ${POLICY.MAX_EXPIRATION_HOURS} hours`);
210
210
  }
211
211
  function validateDeletionConfig(config) {
212
- assert(!('deleteAfterSeconds' in config) || config.deleteAfterSeconds >= 1, 'configuration assert: deleteAfterSeconds must be at least every second');
212
+ assert(!('deleteAfterSeconds' in config) || config.deleteAfterSeconds >= 0, 'configuration assert: deleteAfterSeconds must be at least 0 (0 disables deletion)');
213
213
  }
214
214
  function applyScheduleConfig(config) {
215
215
  assert(!('clockMonitorIntervalSeconds' in config) || (config.clockMonitorIntervalSeconds >= 1 && config.clockMonitorIntervalSeconds <= 600), 'configuration assert: clockMonitorIntervalSeconds must be between 1 second and 10 minutes');
package/dist/bam.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import EventEmitter from 'node:events';
2
- import * as types from './types.js';
2
+ import * as types from './types.ts';
3
3
  declare class Bam extends EventEmitter implements types.EventsMixin {
4
4
  #private;
5
5
  events: {
package/dist/bam.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import EventEmitter from 'node:events';
2
- import * as plans from './plans.js';
3
- import * as types from './types.js';
2
+ import * as plans from "./plans.js";
3
+ import * as types from "./types.js";
4
4
  const events = {
5
5
  error: 'error',
6
6
  bam: 'bam'
package/dist/boss.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import EventEmitter from 'node:events';
2
- import type Manager from './manager.js';
3
- import * as types from './types.js';
2
+ import type Manager from './manager.ts';
3
+ import * as types from './types.ts';
4
4
  declare class Boss extends EventEmitter implements types.EventsMixin {
5
5
  #private;
6
6
  events: {
package/dist/boss.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import EventEmitter from 'node:events';
2
- import * as plans from './plans.js';
3
- import { unwrapSQLResult } from './tools.js';
4
- import * as types from './types.js';
2
+ import * as plans from "./plans.js";
3
+ import { unwrapSQLResult } from "./tools.js";
4
+ import * as types from "./types.js";
5
5
  const events = {
6
6
  error: 'error',
7
7
  warning: 'warning'
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,333 @@
1
+ #!/usr/bin/env node
2
+ import { parseArgs } from 'node:util';
3
+ import { readFileSync, existsSync } from 'node:fs';
4
+ import { resolve } from 'node:path';
5
+ import Db from "./db.js";
6
+ import * as plans from "./plans.js";
7
+ import * as migrationStore from "./migrationStore.js";
8
+ import packageJson from '../package.json' with { type: 'json' };
9
+ const schemaVersion = packageJson.pgboss.schema;
10
+ function printHelp() {
11
+ console.log(`
12
+ pg-boss CLI v${packageJson.version}
13
+
14
+ Usage: pg-boss <command> [options]
15
+
16
+ Commands:
17
+ migrate Run pending migrations (creates schema if not exists)
18
+ create Create the pg-boss schema (initial installation)
19
+ version Show current schema version
20
+ plans Output SQL plans without executing
21
+ rollback Rollback the last migration
22
+
23
+ Options:
24
+ --help, -h Show this help message
25
+ --config, -c <file> Path to config file (default: pgboss.json)
26
+ --schema, -s <name> Schema name (default: pgboss)
27
+ --host <host> Database host
28
+ --port <port> Database port
29
+ --database, -d <name> Database name
30
+ --user, -u <user> Database user
31
+ --password, -p <pass> Database password
32
+ --connection-string Full connection string (overrides other connection options)
33
+ --ssl Enable SSL connection
34
+ --dry-run Output SQL without executing (for plans command)
35
+
36
+ Environment Variables:
37
+ PGBOSS_DATABASE_URL Full connection string
38
+ PGBOSS_HOST Database host
39
+ PGBOSS_PORT Database port
40
+ PGBOSS_DATABASE Database name
41
+ PGBOSS_USER Database user
42
+ PGBOSS_PASSWORD Database password
43
+ PGBOSS_SCHEMA Schema name (default: pgboss)
44
+
45
+ Config File (pgboss.json):
46
+ {
47
+ "host": "localhost",
48
+ "port": 5432,
49
+ "database": "mydb",
50
+ "user": "postgres",
51
+ "password": "secret",
52
+ "schema": "pgboss",
53
+ "ssl": false
54
+ }
55
+
56
+ Examples:
57
+ pg-boss migrate
58
+ pg-boss migrate --schema my_schema
59
+ pg-boss create --connection-string postgres://user:pass@localhost/db
60
+ pg-boss plans migrate --dry-run
61
+ pg-boss version
62
+ PGBOSS_DATABASE_URL=postgres://localhost/mydb pg-boss migrate
63
+ `);
64
+ }
65
+ function loadConfigFile(configPath) {
66
+ const paths = configPath
67
+ ? [resolve(configPath)]
68
+ : [
69
+ resolve('pgboss.json'),
70
+ resolve('.pgbossrc'),
71
+ resolve('.pgbossrc.json')
72
+ ];
73
+ for (const filePath of paths) {
74
+ if (existsSync(filePath)) {
75
+ try {
76
+ const content = readFileSync(filePath, 'utf-8');
77
+ const config = JSON.parse(content);
78
+ console.log(`Loaded config from ${filePath}`);
79
+ return config;
80
+ }
81
+ catch (err) {
82
+ console.error(`Error reading config file ${filePath}: ${err.message}`);
83
+ process.exit(1);
84
+ }
85
+ }
86
+ }
87
+ return {};
88
+ }
89
+ function getConnectionConfig(args) {
90
+ const fileConfig = loadConfigFile(args.config);
91
+ const config = {
92
+ connectionString: args.connectionString || process.env.PGBOSS_DATABASE_URL || fileConfig.connectionString,
93
+ host: args.host || process.env.PGBOSS_HOST || fileConfig.host,
94
+ port: args.port ? parseInt(args.port, 10) : (process.env.PGBOSS_PORT ? parseInt(process.env.PGBOSS_PORT, 10) : fileConfig.port),
95
+ database: args.database || process.env.PGBOSS_DATABASE || fileConfig.database,
96
+ user: args.user || process.env.PGBOSS_USER || fileConfig.user,
97
+ password: args.password || process.env.PGBOSS_PASSWORD || fileConfig.password,
98
+ schema: args.schema || process.env.PGBOSS_SCHEMA || fileConfig.schema || plans.DEFAULT_SCHEMA
99
+ };
100
+ if (args.ssl || fileConfig.ssl) {
101
+ config.ssl = args.ssl ? { rejectUnauthorized: false } : fileConfig.ssl;
102
+ }
103
+ if (!config.connectionString && !config.host && !config.database) {
104
+ console.error('Error: No database connection configured.');
105
+ console.error('Provide connection via --connection-string, environment variables, or config file.');
106
+ console.error('Run "pg-boss --help" for more information.');
107
+ process.exit(1);
108
+ }
109
+ return config;
110
+ }
111
+ function parseCliArgs() {
112
+ const { values, positionals } = parseArgs({
113
+ options: {
114
+ help: { type: 'boolean', short: 'h' },
115
+ config: { type: 'string', short: 'c' },
116
+ schema: { type: 'string', short: 's' },
117
+ host: { type: 'string' },
118
+ port: { type: 'string' },
119
+ database: { type: 'string', short: 'd' },
120
+ user: { type: 'string', short: 'u' },
121
+ password: { type: 'string', short: 'p' },
122
+ 'connection-string': { type: 'string' },
123
+ ssl: { type: 'boolean' },
124
+ 'dry-run': { type: 'boolean' }
125
+ },
126
+ allowPositionals: true
127
+ });
128
+ return {
129
+ help: values.help,
130
+ config: values.config,
131
+ schema: values.schema,
132
+ host: values.host,
133
+ port: values.port,
134
+ database: values.database,
135
+ user: values.user,
136
+ password: values.password,
137
+ connectionString: values['connection-string'],
138
+ ssl: values.ssl,
139
+ dryRun: values['dry-run'],
140
+ command: positionals[0],
141
+ subCommand: positionals[1]
142
+ };
143
+ }
144
+ async function createDb(config) {
145
+ const db = new Db(config);
146
+ await db.open();
147
+ return db;
148
+ }
149
+ async function getSchemaVersion(db, schema) {
150
+ try {
151
+ const result = await db.executeSql(plans.versionTableExists(schema));
152
+ if (!result.rows[0].name) {
153
+ return null;
154
+ }
155
+ const versionResult = await db.executeSql(plans.getVersion(schema));
156
+ return versionResult.rows.length ? parseInt(versionResult.rows[0].version) : null;
157
+ }
158
+ catch {
159
+ return null;
160
+ }
161
+ }
162
+ async function cmdVersion(args) {
163
+ const config = getConnectionConfig(args);
164
+ const schema = config.schema || plans.DEFAULT_SCHEMA;
165
+ const db = await createDb(config);
166
+ try {
167
+ const version = await getSchemaVersion(db, schema);
168
+ if (version === null) {
169
+ console.log(`pg-boss is not installed in schema "${schema}"`);
170
+ }
171
+ else {
172
+ console.log(`Current schema version: ${version}`);
173
+ console.log(`Latest schema version: ${schemaVersion}`);
174
+ if (version < schemaVersion) {
175
+ console.log(`Migrations pending: ${schemaVersion - version}`);
176
+ }
177
+ else {
178
+ console.log('Schema is up to date');
179
+ }
180
+ }
181
+ }
182
+ finally {
183
+ await db.close();
184
+ }
185
+ }
186
+ async function cmdCreate(args) {
187
+ const config = getConnectionConfig(args);
188
+ const schema = config.schema || plans.DEFAULT_SCHEMA;
189
+ if (args.dryRun) {
190
+ const sql = plans.create(schema, schemaVersion, { createSchema: true });
191
+ console.log('-- SQL to create pg-boss schema:');
192
+ console.log(sql);
193
+ return;
194
+ }
195
+ const db = await createDb(config);
196
+ try {
197
+ const version = await getSchemaVersion(db, schema);
198
+ if (version !== null) {
199
+ console.log(`pg-boss is already installed in schema "${schema}" at version ${version}`);
200
+ return;
201
+ }
202
+ console.log(`Creating pg-boss schema "${schema}"...`);
203
+ const sql = plans.create(schema, schemaVersion, { createSchema: true });
204
+ await db.executeSql(sql);
205
+ console.log(`Successfully created pg-boss schema "${schema}" at version ${schemaVersion}`);
206
+ }
207
+ finally {
208
+ await db.close();
209
+ }
210
+ }
211
+ async function cmdMigrate(args) {
212
+ const config = getConnectionConfig(args);
213
+ const schema = config.schema || plans.DEFAULT_SCHEMA;
214
+ if (args.dryRun) {
215
+ const sql = migrationStore.migrate(schema, 0);
216
+ console.log('-- SQL to migrate pg-boss from version 0 to latest:');
217
+ console.log(sql);
218
+ return;
219
+ }
220
+ const db = await createDb(config);
221
+ try {
222
+ const version = await getSchemaVersion(db, schema);
223
+ if (version === null) {
224
+ console.log(`pg-boss is not installed. Creating schema "${schema}"...`);
225
+ const sql = plans.create(schema, schemaVersion, { createSchema: true });
226
+ await db.executeSql(sql);
227
+ console.log(`Successfully created pg-boss schema "${schema}" at version ${schemaVersion}`);
228
+ return;
229
+ }
230
+ if (version >= schemaVersion) {
231
+ console.log(`pg-boss schema "${schema}" is already at version ${version} (latest: ${schemaVersion})`);
232
+ return;
233
+ }
234
+ console.log(`Migrating pg-boss schema "${schema}" from version ${version} to ${schemaVersion}...`);
235
+ const sql = migrationStore.migrate(schema, version);
236
+ await db.executeSql(sql);
237
+ console.log(`Successfully migrated pg-boss schema "${schema}" to version ${schemaVersion}`);
238
+ }
239
+ finally {
240
+ await db.close();
241
+ }
242
+ }
243
+ async function cmdRollback(args) {
244
+ const config = getConnectionConfig(args);
245
+ const schema = config.schema || plans.DEFAULT_SCHEMA;
246
+ const db = await createDb(config);
247
+ try {
248
+ const version = await getSchemaVersion(db, schema);
249
+ if (version === null) {
250
+ console.log(`pg-boss is not installed in schema "${schema}"`);
251
+ return;
252
+ }
253
+ if (version <= 1) {
254
+ console.log('Cannot rollback: already at minimum version');
255
+ return;
256
+ }
257
+ if (args.dryRun) {
258
+ const sql = migrationStore.rollback(schema, version);
259
+ console.log(`-- SQL to rollback pg-boss from version ${version} to ${version - 1}:`);
260
+ console.log(sql);
261
+ return;
262
+ }
263
+ console.log(`Rolling back pg-boss schema "${schema}" from version ${version} to ${version - 1}...`);
264
+ const sql = migrationStore.rollback(schema, version);
265
+ await db.executeSql(sql);
266
+ console.log(`Successfully rolled back pg-boss schema "${schema}" to version ${version - 1}`);
267
+ }
268
+ finally {
269
+ await db.close();
270
+ }
271
+ }
272
+ async function cmdPlans(args) {
273
+ const fileConfig = loadConfigFile(args.config);
274
+ const schema = args.schema || process.env.PGBOSS_SCHEMA || fileConfig.schema || plans.DEFAULT_SCHEMA;
275
+ const subCommand = args.subCommand || 'migrate';
276
+ switch (subCommand) {
277
+ case 'create':
278
+ case 'construct':
279
+ console.log('-- SQL to create pg-boss schema:');
280
+ console.log(plans.create(schema, schemaVersion, { createSchema: true }));
281
+ break;
282
+ case 'migrate':
283
+ console.log('-- SQL to migrate pg-boss (from version 0 to latest):');
284
+ console.log(migrationStore.migrate(schema, 0));
285
+ break;
286
+ case 'rollback':
287
+ console.log(`-- SQL to rollback pg-boss from version ${schemaVersion} to ${schemaVersion - 1}:`);
288
+ console.log(migrationStore.rollback(schema, schemaVersion));
289
+ break;
290
+ default:
291
+ console.error(`Unknown plans subcommand: ${subCommand}`);
292
+ console.error('Available: create, migrate, rollback');
293
+ process.exit(1);
294
+ }
295
+ }
296
+ async function main() {
297
+ const args = parseCliArgs();
298
+ if (args.help || !args.command) {
299
+ printHelp();
300
+ process.exit(0);
301
+ }
302
+ try {
303
+ switch (args.command) {
304
+ case 'version':
305
+ await cmdVersion(args);
306
+ break;
307
+ case 'create':
308
+ await cmdCreate(args);
309
+ break;
310
+ case 'migrate':
311
+ await cmdMigrate(args);
312
+ break;
313
+ case 'rollback':
314
+ await cmdRollback(args);
315
+ break;
316
+ case 'plans':
317
+ await cmdPlans(args);
318
+ break;
319
+ default:
320
+ console.error(`Unknown command: ${args.command}`);
321
+ console.error('Run "pg-boss --help" for available commands.');
322
+ process.exit(1);
323
+ }
324
+ }
325
+ catch (err) {
326
+ console.error(`Error: ${err.message}`);
327
+ if (process.env.DEBUG) {
328
+ console.error(err.stack);
329
+ }
330
+ process.exit(1);
331
+ }
332
+ }
333
+ main();
package/dist/manager.d.ts CHANGED
@@ -55,7 +55,9 @@ declare class Manager extends EventEmitter implements types.EventsMixin {
55
55
  sendThrottled(name: string, data: object | null, options: types.SendOptions | null, seconds: number, key?: string): Promise<string | null>;
56
56
  sendDebounced(name: string, data: object | null, options: types.SendOptions | null, seconds: number, key?: string): Promise<string | null>;
57
57
  createJob(request: types.Request): Promise<string | null>;
58
- insert(name: string, jobs: types.JobInsert[], options?: types.InsertOptions): Promise<string[] | null>;
58
+ insert(name: string, jobs: types.JobInsert[], options?: types.InsertOptions & {
59
+ returnId?: boolean;
60
+ }): Promise<string[] | null>;
59
61
  getDebounceStartAfter(singletonSeconds: number, clockOffset: number): number;
60
62
  fetch<T>(name: string): Promise<types.Job<T>[]>;
61
63
  fetch<T>(name: string, options: types.FetchOptions & {
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
package/dist/manager.js CHANGED
@@ -174,11 +174,15 @@ class Manager extends EventEmitter {
174
174
  }
175
175
  }
176
176
  }
177
- async #processJobs(name, jobs, callback) {
177
+ async #processJobs(name, jobs, callback, worker) {
178
178
  const jobIds = jobs.map(job => job.id);
179
179
  const maxExpiration = jobs.reduce((acc, i) => Math.max(acc, i.expireInSeconds), 0);
180
180
  const ac = new AbortController();
181
181
  jobs.forEach(job => { job.signal = ac.signal; });
182
+ // Store AbortController on worker so it can be aborted after graceful shutdown
183
+ if (worker) {
184
+ worker.abortController = ac;
185
+ }
182
186
  try {
183
187
  const result = await resolveWithinSeconds(callback(jobs), maxExpiration, `handler execution exceeded ${maxExpiration}s`, ac);
184
188
  await this.complete(name, jobIds, jobIds.length === 1 ? result : undefined);
@@ -188,6 +192,12 @@ class Manager extends EventEmitter {
188
192
  await this.fail(name, jobIds, err);
189
193
  this.#trackJobsFailed(name, jobs, err);
190
194
  }
195
+ finally {
196
+ if (worker) {
197
+ // Clear between jobs
198
+ worker.abortController = null;
199
+ }
200
+ }
191
201
  }
192
202
  async start() {
193
203
  this.stopped = false;
@@ -233,6 +243,7 @@ class Manager extends EventEmitter {
233
243
  if (jobIds.length) {
234
244
  await this.fail(worker.name, jobIds, 'pg-boss shut down while active');
235
245
  }
246
+ worker.abort();
236
247
  }
237
248
  }
238
249
  async work(name, ...args) {
@@ -240,7 +251,7 @@ class Manager extends EventEmitter {
240
251
  if (this.stopped) {
241
252
  throw new Error('Workers are disabled. pg-boss is stopped');
242
253
  }
243
- const { pollingInterval: interval, batchSize = 1, includeMetadata = false, priority = true, localConcurrency = 1, localGroupConcurrency, groupConcurrency } = options;
254
+ const { pollingInterval: interval, batchSize = 1, includeMetadata = false, priority = true, localConcurrency = 1, localGroupConcurrency, groupConcurrency, orderByCreatedOn = true } = options;
244
255
  if (localGroupConcurrency != null) {
245
256
  this.#storeLocalGroupConfig(name, localGroupConcurrency);
246
257
  }
@@ -250,7 +261,7 @@ class Manager extends EventEmitter {
250
261
  const ignoreGroups = localGroupConcurrency != null
251
262
  ? this.#getGroupsAtLocalCapacity(name)
252
263
  : undefined;
253
- return this.fetch(name, { batchSize, includeMetadata, priority, groupConcurrency, ignoreGroups });
264
+ return this.fetch(name, { batchSize, includeMetadata, priority, orderByCreatedOn, groupConcurrency, ignoreGroups });
254
265
  };
255
266
  const onFetch = async (jobs) => {
256
267
  if (!jobs.length)
@@ -259,9 +270,11 @@ class Manager extends EventEmitter {
259
270
  throw new Error('__test__throw_worker');
260
271
  this.emitWip(name);
261
272
  this.#trackJobsActive(name, jobs);
273
+ // Get the worker instance for abort controller tracking
274
+ const worker = this.workers.get(workerId);
262
275
  // Skip all in-memory group tracking when localGroupConcurrency is not enabled
263
276
  if (localGroupConcurrency == null) {
264
- await this.#processJobs(name, jobs, callback);
277
+ await this.#processJobs(name, jobs, callback, worker);
265
278
  }
266
279
  else {
267
280
  const { allowed, excess, groupedJobs } = this.#trackLocalGroupStart(name, jobs);
@@ -271,7 +284,7 @@ class Manager extends EventEmitter {
271
284
  }
272
285
  if (allowed.length > 0) {
273
286
  try {
274
- await this.#processJobs(name, allowed, callback);
287
+ await this.#processJobs(name, allowed, callback, worker);
275
288
  }
276
289
  finally {
277
290
  this.#trackLocalGroupEnd(name, groupedJobs);
@@ -454,7 +467,7 @@ class Manager extends EventEmitter {
454
467
  const db = this.assertDb(options);
455
468
  const spy = this.config.__test__enableSpies ? this.#spies.get(name) : undefined;
456
469
  // Return IDs if spy is active for this queue (needed for job tracking)
457
- const returnId = !!spy;
470
+ const returnId = !!spy || !!options.returnId;
458
471
  const sql = plans.insertJobs(this.config.schema, { table, name, returnId });
459
472
  const { rows } = await db.executeSql(sql, [JSON.stringify(jobs)]);
460
473
  if (rows.length) {
package/dist/plans.d.ts CHANGED
@@ -61,6 +61,7 @@ interface FetchJobOptions {
61
61
  limit: number;
62
62
  includeMetadata?: boolean;
63
63
  priority?: boolean;
64
+ orderByCreatedOn?: boolean;
64
65
  ignoreStartAfter?: boolean;
65
66
  ignoreSingletons: string[] | null;
66
67
  ignoreGroups?: string[] | null;
@@ -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
@@ -661,7 +661,7 @@ function buildFetchParams(options) {
661
661
  return { values, ignoreSingletonsParam, ignoreGroupsParam, defaultGroupLimitParam, tiersParam };
662
662
  }
663
663
  function fetchNextJob(options) {
664
- const { schema, table, name, policy, limit, includeMetadata, priority = true, ignoreStartAfter = false, groupConcurrency } = options;
664
+ const { schema, table, name, policy, limit, includeMetadata, priority = true, orderByCreatedOn = true, ignoreStartAfter = false, groupConcurrency } = options;
665
665
  const singletonFetch = limit > 1 && (policy === QUEUE_POLICIES.singleton || policy === QUEUE_POLICIES.stately);
666
666
  const hasIgnoreSingletons = options.ignoreSingletons != null && options.ignoreSingletons.length > 0;
667
667
  const hasIgnoreGroups = options.ignoreGroups != null && options.ignoreGroups.length > 0;
@@ -696,7 +696,7 @@ function fetchNextJob(options) {
696
696
  SELECT ${selectCols}
697
697
  FROM ${schema}.${table}
698
698
  WHERE ${whereConditions}
699
- ORDER BY ${priority ? 'priority desc, ' : ''}created_on, id
699
+ ORDER BY ${priority ? 'priority desc, ' : ''}${orderByCreatedOn ? 'created_on, ' : ''}id
700
700
  LIMIT ${limit}
701
701
  FOR UPDATE SKIP LOCKED
702
702
  )`;
@@ -1050,7 +1050,7 @@ function deletion(schema, table, queues) {
1050
1050
  WHERE name = ANY(${serializeArrayParam(queues)})
1051
1051
  AND
1052
1052
  (
1053
- completed_on + deletion_seconds * interval '1s' < now()
1053
+ (deletion_seconds > 0 AND completed_on + deletion_seconds * interval '1s' < now())
1054
1054
  OR
1055
1055
  (state < '${JOB_STATES.active}' AND keep_until < now())
1056
1056
  )
package/dist/types.d.ts CHANGED
@@ -59,6 +59,7 @@ export interface Migration {
59
59
  uninstall?: string[];
60
60
  }
61
61
  export interface ConstructorOptions extends DatabaseOptions, SchedulingOptions, MaintenanceOptions {
62
+ __test__enableSpies?: boolean;
62
63
  }
63
64
  export interface ResolvedConstructorOptions extends ConstructorOptions {
64
65
  schema: string;
@@ -133,6 +134,7 @@ export interface JobPollingOptions {
133
134
  export interface JobFetchOptions {
134
135
  includeMetadata?: boolean;
135
136
  priority?: boolean;
137
+ orderByCreatedOn?: boolean;
136
138
  batchSize?: number;
137
139
  ignoreStartAfter?: boolean;
138
140
  }
@@ -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/worker.d.ts CHANGED
@@ -27,6 +27,7 @@ declare class Worker<T = unknown> {
27
27
  lastErrorOn: number | null;
28
28
  stopping: boolean;
29
29
  stopped: boolean;
30
+ abortController: AbortController | null;
30
31
  private loopDelayPromise;
31
32
  private beenNotified;
32
33
  private runPromise;
@@ -35,6 +36,7 @@ declare class Worker<T = unknown> {
35
36
  private run;
36
37
  notify(): void;
37
38
  stop(): Promise<void>;
39
+ abort(): void;
38
40
  toWipData(): types.WipData;
39
41
  }
40
42
  export default Worker;
@@ -1 +1 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AASxC,UAAU,aAAa,CAAC,CAAC;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,KAAK,CAAC,WAAW,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC5B;AAED,cAAM,MAAM,CAAC,CAAC,GAAG,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAK;IACzB,SAAS,SAAa;IACtB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAwB;IAChD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAO;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAO;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAO;IACpC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAO;IACrC,SAAS,EAAE,GAAG,CAAO;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAO;IACjC,QAAQ,UAAQ;IAChB,OAAO,UAAQ;IACf,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAA6B;gBAElC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IAUvF,KAAK;YAIS,GAAG;IAgDjB,MAAM;IAQA,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAW5B,SAAS,IAAK,KAAK,CAAC,OAAO;CAgB5B;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AASxC,UAAU,aAAa,CAAC,CAAC;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,KAAK,CAAC,WAAW,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACpC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;CAC5B;AAED,cAAM,MAAM,CAAC,CAAC,GAAG,OAAO;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAA;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IAEzB,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAK;IACzB,SAAS,SAAa;IACtB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAwB;IAChD,aAAa,EAAE,MAAM,GAAG,IAAI,CAAO;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAO;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAO;IACpC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAO;IACrC,SAAS,EAAE,GAAG,CAAO;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAO;IACjC,QAAQ,UAAQ;IAChB,OAAO,UAAQ;IACf,eAAe,EAAE,eAAe,GAAG,IAAI,CAAO;IAC9C,OAAO,CAAC,gBAAgB,CAAsC;IAC9D,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,UAAU,CAA6B;gBAElC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IAUvF,KAAK;YAIS,GAAG;IAgDjB,MAAM;IAQA,IAAI,IAAK,OAAO,CAAC,IAAI,CAAC;IAW5B,KAAK,IAAK,IAAI;IAMd,SAAS,IAAK,KAAK,CAAC,OAAO;CAgB5B;AAED,eAAe,MAAM,CAAA"}
package/dist/worker.js CHANGED
@@ -24,6 +24,7 @@ class Worker {
24
24
  lastErrorOn = null;
25
25
  stopping = false;
26
26
  stopped = false;
27
+ abortController = null;
27
28
  loopDelayPromise = null;
28
29
  beenNotified = false;
29
30
  runPromise = null;
@@ -87,6 +88,11 @@ class Worker {
87
88
  }
88
89
  await this.runPromise;
89
90
  }
91
+ abort() {
92
+ if (this.abortController && !this.abortController.signal.aborted) {
93
+ this.abortController.abort();
94
+ }
95
+ }
90
96
  toWipData() {
91
97
  return {
92
98
  id: this.id,
package/package.json CHANGED
@@ -1,25 +1,29 @@
1
1
  {
2
2
  "name": "pg-boss",
3
- "version": "12.6.0",
3
+ "version": "12.7.1",
4
4
  "description": "Queueing jobs in Postgres from Node.js like a boss",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
8
+ "bin": {
9
+ "pg-boss": "./dist/cli.js"
10
+ },
8
11
  "engines": {
9
12
  "node": ">=22.12.0"
10
13
  },
11
14
  "dependencies": {
12
- "cron-parser": "^5.4.0",
13
- "pg": "^8.16.3",
14
- "serialize-error": "^12.0.0"
15
+ "cron-parser": "^5.5.0",
16
+ "pg": "^8.17.2",
17
+ "serialize-error": "^13.0.1"
15
18
  },
16
19
  "devDependencies": {
17
20
  "@tsconfig/node-ts": "^23.6.2",
18
21
  "@tsconfig/node22": "^22.0.5",
19
22
  "@types/luxon": "^3.7.1",
20
- "@types/node": "^22.19.3",
23
+ "@types/node": "^22.19.7",
21
24
  "@types/pg": "^8.16.0",
22
- "@vitest/coverage-v8": "^4.0.16",
25
+ "@vitest/coverage-v8": "^4.0.18",
26
+ "cli-testlab": "^5.1.0",
23
27
  "eslint": "^9.39.2",
24
28
  "luxon": "^3.7.2",
25
29
  "neostandard": "^0.12.2",
@@ -30,9 +34,9 @@
30
34
  "scripts": {
31
35
  "build": "npm run clean && tsc --project tsconfig.build.json",
32
36
  "clean": "node -e \"fs.rmSync('dist',{recursive:true,force:true})\"",
33
- "prepublishOnly": "npm test && npm run build",
34
- "postpublish": "npm run clean",
37
+ "prepublishOnly": "npm install && npm test && npm run build",
35
38
  "test": "eslint . && vitest run",
39
+ "lint:fix": "eslint . --fix",
36
40
  "cover": "vitest run --coverage",
37
41
  "tsc": "tsc --noEmit",
38
42
  "readme": "node ./examples/readme.js",