pg-boss 12.36.0 → 12.37.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 +2 -2
- package/dist/attorney.d.ts.map +1 -1
- package/dist/attorney.js +5 -0
- package/dist/cli.js +8 -2
- package/dist/contractor.d.ts +1 -0
- package/dist/contractor.d.ts.map +1 -1
- package/dist/contractor.js +4 -0
- package/dist/db.js +3 -3
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +69 -10
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +112 -15
- package/dist/migrationStore.d.ts.map +1 -1
- package/dist/migrationStore.js +127 -0
- package/dist/plans.d.ts +8 -3
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +134 -40
- package/dist/registrar.d.ts +1 -1
- package/dist/registrar.d.ts.map +1 -1
- package/dist/registrar.js +6 -1
- package/dist/schema.json +35 -2
- package/dist/timekeeper.d.ts +4 -1
- package/dist/timekeeper.d.ts.map +1 -1
- package/dist/timekeeper.js +22 -5
- package/dist/types.d.ts +16 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/worker.d.ts +1 -0
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +2 -0
- package/package.json +2 -2
package/dist/manager.js
CHANGED
|
@@ -8,7 +8,7 @@ import { TRANSACTION_ROLLBACK_TIMEOUT_MS } from "./db.js";
|
|
|
8
8
|
import * as plans from "./plans.js";
|
|
9
9
|
import { percentile } from "./latency.js";
|
|
10
10
|
import * as timekeeper from "./timekeeper.js";
|
|
11
|
-
import { resolveWithinSeconds } from "./tools.js";
|
|
11
|
+
import { delay, resolveWithinSeconds } from "./tools.js";
|
|
12
12
|
import * as types from "./types.js";
|
|
13
13
|
import Worker from "./worker.js";
|
|
14
14
|
import { JobSpy } from "./spy.js";
|
|
@@ -16,6 +16,14 @@ import Telemetry, {} from "./telemetry.js";
|
|
|
16
16
|
const INTERNAL_QUEUES = Object.values(timekeeper.QUEUES).reduce((acc, i) => ({ ...acc, [i]: i }), {});
|
|
17
17
|
// postgres: current transaction is aborted, commands ignored until end of transaction block
|
|
18
18
|
const TRANSACTION_ABORTED = '25P02';
|
|
19
|
+
// serialization_failure, which CockroachDB raises for a transaction it has to restart.
|
|
20
|
+
const SERIALIZATION_FAILURE = '40001';
|
|
21
|
+
const UPSERT_ATTEMPTS = 3;
|
|
22
|
+
const QUEUE_NOT_FOUND = 'PGBOSS_QUEUE_NOT_FOUND';
|
|
23
|
+
// How long deleteQueue() keeps trying for the locks a queue with its own table needs: 25 ms doubling
|
|
24
|
+
// to 400 ms between tries, about 3 seconds in all.
|
|
25
|
+
const DELETE_QUEUE_ATTEMPTS = 12;
|
|
26
|
+
const DELETE_QUEUE_MAX_DELAY_MS = 400;
|
|
19
27
|
// pg's own default when the pool size is not configured. Used to tell a transactional worker how
|
|
20
28
|
// much room it actually has, since each handler in flight holds a connection of its own.
|
|
21
29
|
const DEFAULT_POOL_MAX = 10;
|
|
@@ -157,6 +165,16 @@ function rethrowWriteError(err) {
|
|
|
157
165
|
}
|
|
158
166
|
throw err;
|
|
159
167
|
}
|
|
168
|
+
// The foreign key a job insert broke, from the error's constraint field where the driver reports one
|
|
169
|
+
// and from the message otherwise, and the key value it could not find. Bun.SQL carries the SQLSTATE
|
|
170
|
+
// in errno.
|
|
171
|
+
function brokenForeignKey(err) {
|
|
172
|
+
if (err?.code !== plans.PG_ERROR.foreignKeyViolation && err?.errno !== plans.PG_ERROR.foreignKeyViolation)
|
|
173
|
+
return;
|
|
174
|
+
const constraint = err.constraint ?? err.constraint_name ?? /foreign key constraint "(\w+)"/.exec(err.message)?.[1];
|
|
175
|
+
const value = /\)=\('?(.*?)'?\) is not present/.exec(err.detail ?? err.message)?.[1];
|
|
176
|
+
return { constraint, value };
|
|
177
|
+
}
|
|
160
178
|
// For a json value read back from a row and bound again behind `::text::jsonb`. Null stays SQL NULL.
|
|
161
179
|
function toJsonText(value) {
|
|
162
180
|
return value == null ? null : JSON.stringify(value);
|
|
@@ -628,6 +646,10 @@ class Manager extends EventEmitter {
|
|
|
628
646
|
await this.#applyTransactionTimeout(transaction, timeoutGuc, timeoutMs);
|
|
629
647
|
}
|
|
630
648
|
}
|
|
649
|
+
// A fetch or transaction begin can finish after stop() has exhausted its active-handler grace.
|
|
650
|
+
if (worker?.graceExpired) {
|
|
651
|
+
throw new Error('pg-boss shut down before the handler started');
|
|
652
|
+
}
|
|
631
653
|
const handling = transaction
|
|
632
654
|
? callback(jobs, untracked(transaction.db))
|
|
633
655
|
: callback(jobs);
|
|
@@ -889,7 +911,7 @@ class Manager extends EventEmitter {
|
|
|
889
911
|
}
|
|
890
912
|
queue = await this.getQueue(name);
|
|
891
913
|
if (!queue) {
|
|
892
|
-
throw new Error(`Queue ${name} does not exist`);
|
|
914
|
+
throw Object.assign(new Error(`Queue ${name} does not exist`), { code: QUEUE_NOT_FOUND });
|
|
893
915
|
}
|
|
894
916
|
this.queues[name] = queue;
|
|
895
917
|
return queue;
|
|
@@ -898,6 +920,42 @@ class Manager extends EventEmitter {
|
|
|
898
920
|
if (this.queues)
|
|
899
921
|
delete this.queues[name];
|
|
900
922
|
}
|
|
923
|
+
// A job insert is what notices a queue deleted after this instance cached it: q_fkey fails for a
|
|
924
|
+
// queue in the shared table, and a queue with its own table (partition: true) fails on the dropped
|
|
925
|
+
// table (42P01), dlq_fkey for its dead letter queue. Each is rewritten into the error a missing
|
|
926
|
+
// queue gets up front, and a missing queue loses its cache entry so the next call fails before
|
|
927
|
+
// reaching the database. `names` are the queues the statement wrote to.
|
|
928
|
+
async #rethrowInsertError(err, names, owned) {
|
|
929
|
+
const broken = brokenForeignKey(err);
|
|
930
|
+
if (broken?.constraint === 'q_fkey') {
|
|
931
|
+
this.#throwQueueNotFound(broken.value && names.includes(broken.value) ? [broken.value] : names, err, owned);
|
|
932
|
+
}
|
|
933
|
+
// A missing table can also mean a queue deleted and created again elsewhere under its own table, and
|
|
934
|
+
// a partition constraint (23514) one created again with its own table while this instance still
|
|
935
|
+
// writes to the shared one. So the queues are read again: a gone one is reported as missing, and the
|
|
936
|
+
// others take their current row, so the next call writes to the right table. A failed read leaves
|
|
937
|
+
// the original error.
|
|
938
|
+
if (err?.code === plans.PG_ERROR.undefinedTable || err?.code === plans.PG_ERROR.checkViolation) {
|
|
939
|
+
const queues = await Promise.all(names.map(name => this.getQueue(name))).catch(() => null);
|
|
940
|
+
if (queues) {
|
|
941
|
+
const missing = names.filter((name, i) => !queues[i]);
|
|
942
|
+
if (missing.length)
|
|
943
|
+
this.#throwQueueNotFound(missing, err, owned);
|
|
944
|
+
queues.forEach(queue => { if (queue && this.queues)
|
|
945
|
+
this.queues[queue.name] = queue; });
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
if (broken?.constraint === 'dlq_fkey') {
|
|
949
|
+
throw new Error(broken.value ? `Dead letter queue ${broken.value} does not exist` : 'Dead letter queue does not exist', { cause: err });
|
|
950
|
+
}
|
|
951
|
+
rethrowWriteError(err);
|
|
952
|
+
}
|
|
953
|
+
// Coded, so publish() skips it, only when the statement ran on pg-boss's own connection: a failed
|
|
954
|
+
// statement in a caller's transaction has aborted it, and that has to reach the caller.
|
|
955
|
+
#throwQueueNotFound(missing, cause, owned) {
|
|
956
|
+
missing.forEach(name => this.#evictQueueCache(name));
|
|
957
|
+
throw Object.assign(new Error(`Queue ${missing.join(', ')} does not exist`, { cause }), owned ? { code: QUEUE_NOT_FOUND } : {});
|
|
958
|
+
}
|
|
901
959
|
// Replaces a queue's cache entry with its row as it stands, rather than evicting it, so a queue
|
|
902
960
|
// created again or updated stays in the cache and the queue gauge while still picking up what
|
|
903
961
|
// changed: new options, or a table that changed under it (deleted and recreated elsewhere with
|
|
@@ -931,6 +989,11 @@ class Manager extends EventEmitter {
|
|
|
931
989
|
// `stopped` all wait on this, so every worker has to be reached even when one of them cannot be
|
|
932
990
|
// failed.
|
|
933
991
|
async failWip() {
|
|
992
|
+
// Every worker is marked before any fail below is awaited, so a claim landing on a later worker
|
|
993
|
+
// while an earlier one's fail is in flight is refused too.
|
|
994
|
+
for (const worker of this.workers.values()) {
|
|
995
|
+
worker.graceExpired = true;
|
|
996
|
+
}
|
|
934
997
|
for (const worker of this.workers.values()) {
|
|
935
998
|
const jobIds = worker.jobs.map(j => j.id);
|
|
936
999
|
if (jobIds.length) {
|
|
@@ -968,6 +1031,10 @@ class Manager extends EventEmitter {
|
|
|
968
1031
|
if (transactional) {
|
|
969
1032
|
assert(typeof this.db.beginTransaction === 'function', 'transactional workers require a database connection pg-boss can open a transaction on: the built-in pool, or a db adapter implementing beginTransaction');
|
|
970
1033
|
await this.#assertTransactionalHeartbeatSupported(name);
|
|
1034
|
+
// A stop() during that await has already looked for workers, and would not see this one.
|
|
1035
|
+
if (this.stopped) {
|
|
1036
|
+
throw new Error('Workers are disabled. pg-boss is stopped');
|
|
1037
|
+
}
|
|
971
1038
|
this.#warnOnTransactionalPoolHeadroom(localConcurrency);
|
|
972
1039
|
}
|
|
973
1040
|
if (localGroupConcurrency != null) {
|
|
@@ -1227,7 +1294,8 @@ class Manager extends EventEmitter {
|
|
|
1227
1294
|
const results = await Promise.allSettled(rows.map(({ name }) => this.send(name, data, options)));
|
|
1228
1295
|
const failures = results
|
|
1229
1296
|
.map((result, index) => ({ result, name: rows[index].name }))
|
|
1230
|
-
|
|
1297
|
+
// A deleted subscriber can still be in the selection, just as a cached send can insert no job.
|
|
1298
|
+
.filter((entry) => entry.result.status === 'rejected' && entry.result.reason?.code !== QUEUE_NOT_FOUND);
|
|
1231
1299
|
if (failures.length > 0) {
|
|
1232
1300
|
// Each entry names its own queue, so attribution doesn't depend on lining errors[] up with
|
|
1233
1301
|
// the queue order positionally, and survives two subscribers failing with identical text.
|
|
@@ -1300,7 +1368,8 @@ class Manager extends EventEmitter {
|
|
|
1300
1368
|
throw new Error(`${plans.QUEUE_POLICIES.key_strict_fifo} queues require a singletonKey`);
|
|
1301
1369
|
}
|
|
1302
1370
|
const sql = plans.insertJobs(this.config.schema, { table, name, returnId: true, notify: this.#notifyEnabled(notify) });
|
|
1303
|
-
const
|
|
1371
|
+
const insert = () => db.executeSql(sql, [JSON.stringify([job])]).catch(err => this.#rethrowInsertError(err, [name], !wrapper));
|
|
1372
|
+
const { rows: try1 } = await insert();
|
|
1304
1373
|
if (try1.length === 1) {
|
|
1305
1374
|
const jobId = try1[0].id;
|
|
1306
1375
|
if (this.config.__test__enableSpies) {
|
|
@@ -1315,7 +1384,7 @@ class Manager extends EventEmitter {
|
|
|
1315
1384
|
// delay starting by the offset to honor throttling config
|
|
1316
1385
|
job.startAfter = this.getDebounceStartAfter(singletonSeconds, this.timekeeper.clockSkew);
|
|
1317
1386
|
job.singletonOffset = singletonSeconds;
|
|
1318
|
-
const { rows: try2 } = await
|
|
1387
|
+
const { rows: try2 } = await insert();
|
|
1319
1388
|
if (try2.length === 1) {
|
|
1320
1389
|
const jobId = try2[0].id;
|
|
1321
1390
|
if (this.config.__test__enableSpies) {
|
|
@@ -1389,11 +1458,12 @@ class Manager extends EventEmitter {
|
|
|
1389
1458
|
}
|
|
1390
1459
|
const notifyEnabled = this.#notifyEnabled(notify);
|
|
1391
1460
|
const updateSql = plans.updateJob(this.config.schema, table, name, by, match, notifyEnabled);
|
|
1392
|
-
const insertSql = plans.insertJobs(this.config.schema, { table, name, returnId: true, notify: notifyEnabled });
|
|
1461
|
+
const insertSql = plans.insertJobs(this.config.schema, { table, name, returnId: true, notify: notifyEnabled, upsertByKey: by === 'singletonKey' });
|
|
1393
1462
|
const job = this.#toUpdatePayload(data, opts);
|
|
1394
1463
|
const updatePayload = JSON.stringify(job);
|
|
1395
1464
|
const insertPayload = JSON.stringify([{ ...job, __traceContext: traceContext }]);
|
|
1396
|
-
|
|
1465
|
+
// The catch is outside the transaction: a deferred q_fkey reports at its COMMIT.
|
|
1466
|
+
const attempt = () => this.ensureTransaction(db, async (tx) => {
|
|
1397
1467
|
const { rows: updated } = await tx.executeSql(updateSql, [updatePayload]);
|
|
1398
1468
|
if (updated.length) {
|
|
1399
1469
|
const jobs = updated.map(row => row.id);
|
|
@@ -1409,7 +1479,22 @@ class Manager extends EventEmitter {
|
|
|
1409
1479
|
const { rows: retry } = await tx.executeSql(updateSql, [updatePayload]);
|
|
1410
1480
|
const jobs = retry.map(row => row.id);
|
|
1411
1481
|
return { jobs, updated: jobs.length, inserted: 0 };
|
|
1412
|
-
});
|
|
1482
|
+
}).catch(err => this.#rethrowInsertError(err, [name], !opts.db));
|
|
1483
|
+
// Where every transaction is serializable (CockroachDB), two upserts of one key that both miss
|
|
1484
|
+
// conflict and one fails with 40001, rather than waiting on job_i13 as under READ COMMITTED. The
|
|
1485
|
+
// transaction is pg-boss's own unless the caller passed a db, so the upsert runs again and finds
|
|
1486
|
+
// the other's job. A caller's transaction is theirs to retry.
|
|
1487
|
+
let result;
|
|
1488
|
+
for (let attempts = 1;; attempts++) {
|
|
1489
|
+
try {
|
|
1490
|
+
result = await attempt();
|
|
1491
|
+
break;
|
|
1492
|
+
}
|
|
1493
|
+
catch (err) {
|
|
1494
|
+
if (opts.db || err?.code !== SERIALIZATION_FAILURE || attempts === UPSERT_ATTEMPTS)
|
|
1495
|
+
throw err;
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1413
1498
|
// Track inserted (newly created) jobs for spies, matching createJob/insert. Runs after the
|
|
1414
1499
|
// transaction commits so a rolled-back insert never leaves a phantom spy entry.
|
|
1415
1500
|
if (result.inserted && this.config.__test__enableSpies) {
|
|
@@ -1498,7 +1583,7 @@ class Manager extends EventEmitter {
|
|
|
1498
1583
|
// Return IDs if spy is active for this queue (needed for job tracking)
|
|
1499
1584
|
const returnId = !!spy || !!options.returnId;
|
|
1500
1585
|
const sql = plans.insertJobs(this.config.schema, { table, name, returnId, notify: this.#notifyEnabled(notify), slots });
|
|
1501
|
-
const { rows } = await db.executeSql(sql, [JSON.stringify(insertPayload)]);
|
|
1586
|
+
const { rows } = await db.executeSql(sql, [JSON.stringify(insertPayload)]).catch(err => this.#rethrowInsertError(err, [name], !options.db));
|
|
1502
1587
|
if (rows.length) {
|
|
1503
1588
|
if (spy) {
|
|
1504
1589
|
// dataById is populated for every job when a spy is active
|
|
@@ -1603,7 +1688,7 @@ class Manager extends EventEmitter {
|
|
|
1603
1688
|
await db.executeSql(sql);
|
|
1604
1689
|
}
|
|
1605
1690
|
catch (err) {
|
|
1606
|
-
|
|
1691
|
+
await this.#rethrowInsertError(err, [...byQueue.keys()], !options.db);
|
|
1607
1692
|
}
|
|
1608
1693
|
return refToId;
|
|
1609
1694
|
}
|
|
@@ -1641,7 +1726,7 @@ class Manager extends EventEmitter {
|
|
|
1641
1726
|
async #fetch(name, options) {
|
|
1642
1727
|
this.#warnDeprecatedFetchOptions(options);
|
|
1643
1728
|
const db = this.assertDb(options);
|
|
1644
|
-
const { table, policy
|
|
1729
|
+
const { table, policy } = await this.getQueueCache(name);
|
|
1645
1730
|
const fetchOptions = {
|
|
1646
1731
|
...options,
|
|
1647
1732
|
schema: this.config.schema,
|
|
@@ -1649,7 +1734,6 @@ class Manager extends EventEmitter {
|
|
|
1649
1734
|
name,
|
|
1650
1735
|
policy,
|
|
1651
1736
|
limit: options.batchSize || 1,
|
|
1652
|
-
ignoreSingletons: singletonsActive,
|
|
1653
1737
|
includeTraceContext: this.#telemetry.enabled
|
|
1654
1738
|
};
|
|
1655
1739
|
const query = plans.fetchNextJob(fetchOptions, this.config.noSkipLocked);
|
|
@@ -2183,8 +2267,21 @@ class Manager extends EventEmitter {
|
|
|
2183
2267
|
catch {
|
|
2184
2268
|
return;
|
|
2185
2269
|
}
|
|
2186
|
-
const sql = plans.deleteQueue(this.config.schema, name, this.config.noAdvisoryLocks);
|
|
2187
|
-
|
|
2270
|
+
const sql = plans.deleteQueue(this.config.schema, name, this.config.noAdvisoryLocks, !this.config.noTablePartitioning);
|
|
2271
|
+
// Only a queue with its own table takes locks that can be busy, and only those are tried again.
|
|
2272
|
+
for (let attempt = 1;; attempt++) {
|
|
2273
|
+
try {
|
|
2274
|
+
await this.db.executeSql(sql);
|
|
2275
|
+
break;
|
|
2276
|
+
}
|
|
2277
|
+
catch (err) {
|
|
2278
|
+
if (err?.code !== plans.PG_ERROR.lockNotAvailable)
|
|
2279
|
+
throw err;
|
|
2280
|
+
if (attempt === DELETE_QUEUE_ATTEMPTS)
|
|
2281
|
+
throw new Error(`Queue ${name} was not deleted: its tables stayed locked through ${attempt} tries`, { cause: err });
|
|
2282
|
+
await delay(Math.min(25 * 2 ** (attempt - 1), DELETE_QUEUE_MAX_DELAY_MS) * (0.5 + Math.random() / 2));
|
|
2283
|
+
}
|
|
2284
|
+
}
|
|
2188
2285
|
this.#evictQueueCache(name);
|
|
2189
2286
|
}
|
|
2190
2287
|
async deleteQueuedJobs(name) {
|
|
@@ -2416,7 +2513,7 @@ class Manager extends EventEmitter {
|
|
|
2416
2513
|
return options.db;
|
|
2417
2514
|
}
|
|
2418
2515
|
if (this.db._pgbdb) {
|
|
2419
|
-
assert(this.db.opened, 'Database
|
|
2516
|
+
assert(this.db.opened, 'Database not opened. Call start() before using pg-boss, or again after stop().');
|
|
2420
2517
|
}
|
|
2421
2518
|
return this.db;
|
|
2422
2519
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationStore.d.ts","sourceRoot":"","sources":["../src/migrationStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAKnC,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IAKrB,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAA;CAC7C;AAoGD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AASD,iBAAS,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAsB5G;AAED,iBAAS,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAQxG;AAKD,iBAAS,eAAe,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,iBAAiB,CAiDrK;AAKD,iBAAS,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,UAIzI;
|
|
1
|
+
{"version":3,"file":"migrationStore.d.ts","sourceRoot":"","sources":["../src/migrationStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAKnC,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IAKrB,eAAe,CAAC,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAA;CAC7C;AAoGD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AASD,iBAAS,QAAQ,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAsB5G;AAED,iBAAS,IAAI,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,UAQxG;AAKD,iBAAS,eAAe,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,iBAAiB,CAiDrK;AAKD,iBAAS,OAAO,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,UAIzI;AA6tCD,iBAAS,aAAa,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAE9C;AAID,iBAAS,eAAe,CAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,QAAQ,GAAG,qBAAqB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,CAE3K;AAOD,iBAAS,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAQ,EAAE,UAAU,UAAQ,EAAE,mBAAmB,UAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAivB3H;AAED,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,eAAe,EACf,MAAM,EACN,eAAe,EACf,aAAa,GACd,CAAA"}
|
package/dist/migrationStore.js
CHANGED
|
@@ -1087,6 +1087,99 @@ const createQueueFn = {
|
|
|
1087
1087
|
EXECUTE ${schema}.job_table_format($cmd$ALTER TABLE ${schema}.job ADD CONSTRAINT job_key_strict_fifo_singleton_key_check CHECK (NOT (policy = 'key_strict_fifo' AND singleton_key IS NULL))$cmd$, tablename);
|
|
1088
1088
|
END IF;
|
|
1089
1089
|
|
|
1090
|
+
EXECUTE format('ALTER TABLE ${schema}.%I ADD CONSTRAINT cjc CHECK (name=%L)', tablename, queue_name);
|
|
1091
|
+
EXECUTE format('ALTER TABLE ${schema}.job ATTACH PARTITION ${schema}.%I FOR VALUES IN (%L)', tablename, queue_name);
|
|
1092
|
+
END;
|
|
1093
|
+
$$
|
|
1094
|
+
LANGUAGE plpgsql;
|
|
1095
|
+
`,
|
|
1096
|
+
45: (schema) => `
|
|
1097
|
+
CREATE OR REPLACE FUNCTION ${schema}.create_queue(queue_name text, options jsonb)
|
|
1098
|
+
RETURNS VOID AS
|
|
1099
|
+
$$
|
|
1100
|
+
DECLARE
|
|
1101
|
+
tablename varchar := CASE WHEN options->>'partition' = 'true'
|
|
1102
|
+
THEN 'j' || encode(sha224(queue_name::bytea), 'hex')
|
|
1103
|
+
ELSE 'job_common'
|
|
1104
|
+
END;
|
|
1105
|
+
queue_created_on timestamptz;
|
|
1106
|
+
BEGIN
|
|
1107
|
+
|
|
1108
|
+
WITH q as (
|
|
1109
|
+
INSERT INTO ${schema}.queue (
|
|
1110
|
+
name,
|
|
1111
|
+
policy,
|
|
1112
|
+
retry_limit,
|
|
1113
|
+
retry_delay,
|
|
1114
|
+
retry_backoff,
|
|
1115
|
+
retry_delay_max,
|
|
1116
|
+
expire_seconds,
|
|
1117
|
+
retention_seconds,
|
|
1118
|
+
deletion_seconds,
|
|
1119
|
+
warning_queued,
|
|
1120
|
+
dead_letter,
|
|
1121
|
+
partition,
|
|
1122
|
+
table_name,
|
|
1123
|
+
heartbeat_seconds,
|
|
1124
|
+
notify,
|
|
1125
|
+
created_on,
|
|
1126
|
+
updated_on
|
|
1127
|
+
)
|
|
1128
|
+
VALUES (
|
|
1129
|
+
queue_name,
|
|
1130
|
+
options->>'policy',
|
|
1131
|
+
COALESCE((options->>'retryLimit')::int, 2),
|
|
1132
|
+
COALESCE((options->>'retryDelay')::int, 0),
|
|
1133
|
+
COALESCE((options->>'retryBackoff')::bool, false),
|
|
1134
|
+
(options->>'retryDelayMax')::int,
|
|
1135
|
+
COALESCE((options->>'expireInSeconds')::int, 900),
|
|
1136
|
+
COALESCE((options->>'retentionSeconds')::int, 1209600),
|
|
1137
|
+
COALESCE((options->>'deleteAfterSeconds')::int, 604800),
|
|
1138
|
+
COALESCE((options->>'warningQueueSize')::int, 0),
|
|
1139
|
+
options->>'deadLetter',
|
|
1140
|
+
COALESCE((options->>'partition')::bool, false),
|
|
1141
|
+
tablename,
|
|
1142
|
+
(options->>'heartbeatSeconds')::int,
|
|
1143
|
+
COALESCE((options->>'notify')::bool, false),
|
|
1144
|
+
${schema}.job_now(),
|
|
1145
|
+
${schema}.job_now()
|
|
1146
|
+
)
|
|
1147
|
+
ON CONFLICT DO NOTHING
|
|
1148
|
+
RETURNING created_on
|
|
1149
|
+
)
|
|
1150
|
+
SELECT created_on into queue_created_on from q;
|
|
1151
|
+
|
|
1152
|
+
IF queue_created_on IS NULL OR options->>'partition' IS DISTINCT FROM 'true' THEN
|
|
1153
|
+
RETURN;
|
|
1154
|
+
END IF;
|
|
1155
|
+
|
|
1156
|
+
EXECUTE format('CREATE TABLE ${schema}.%I (LIKE ${schema}.job INCLUDING DEFAULTS)', tablename);
|
|
1157
|
+
|
|
1158
|
+
EXECUTE ${schema}.job_table_format($cmd$ALTER TABLE ${schema}.job ADD PRIMARY KEY (name, id)$cmd$, tablename);
|
|
1159
|
+
EXECUTE ${schema}.job_table_format($cmd$ALTER TABLE ${schema}.job ADD CONSTRAINT q_fkey FOREIGN KEY (name) REFERENCES ${schema}.queue (name) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED$cmd$, tablename);
|
|
1160
|
+
EXECUTE ${schema}.job_table_format($cmd$ALTER TABLE ${schema}.job ADD CONSTRAINT dlq_fkey FOREIGN KEY (dead_letter) REFERENCES ${schema}.queue (name) ON DELETE RESTRICT DEFERRABLE INITIALLY DEFERRED$cmd$, tablename);
|
|
1161
|
+
|
|
1162
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE INDEX job_i11 ON ${schema}.job (name, priority DESC, created_on, start_after) WHERE state < 'active' AND NOT blocked$cmd$, tablename);
|
|
1163
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i4 ON ${schema}.job (name, singleton_on, COALESCE(singleton_key, '')) WHERE state <> 'cancelled' AND singleton_on IS NOT NULL$cmd$, tablename);
|
|
1164
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE INDEX job_i7 ON ${schema}.job (name, group_id) WHERE state = 'active' AND group_id IS NOT NULL$cmd$, tablename);
|
|
1165
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE INDEX job_i9 ON ${schema}.job (name, id) WHERE blocking AND state = 'completed'$cmd$, tablename);
|
|
1166
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE INDEX job_i12 ON ${schema}.job (source_root_id) WHERE source_root_id IS NOT NULL$cmd$, tablename);
|
|
1167
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i13 ON ${schema}.job (name, singleton_key) WHERE state = 'created' AND upsert_by_key$cmd$, tablename);
|
|
1168
|
+
|
|
1169
|
+
IF options->>'policy' = 'short' THEN
|
|
1170
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i1 ON ${schema}.job (name, COALESCE(singleton_key, '')) WHERE state = 'created' AND policy = 'short'$cmd$, tablename);
|
|
1171
|
+
ELSIF options->>'policy' = 'singleton' THEN
|
|
1172
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i2 ON ${schema}.job (name, COALESCE(singleton_key, '')) WHERE state = 'active' AND policy = 'singleton'$cmd$, tablename);
|
|
1173
|
+
ELSIF options->>'policy' = 'stately' THEN
|
|
1174
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i3 ON ${schema}.job (name, state, COALESCE(singleton_key, '')) WHERE state <= 'active' AND policy = 'stately'$cmd$, tablename);
|
|
1175
|
+
ELSIF options->>'policy' = 'exclusive' THEN
|
|
1176
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i6 ON ${schema}.job (name, COALESCE(singleton_key, '')) WHERE state <= 'active' AND policy = 'exclusive'$cmd$, tablename);
|
|
1177
|
+
ELSIF options->>'policy' = 'key_strict_fifo' THEN
|
|
1178
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE UNIQUE INDEX job_i8 ON ${schema}.job (name, singleton_key) WHERE state IN ('active', 'retry', 'failed') AND policy = 'key_strict_fifo'$cmd$, tablename);
|
|
1179
|
+
EXECUTE ${schema}.job_table_format($cmd$CREATE INDEX job_i10 ON ${schema}.job (name, singleton_key, state DESC, created_on, id) INCLUDE (start_after) WHERE state < 'active' AND NOT blocked AND policy = 'key_strict_fifo'$cmd$, tablename);
|
|
1180
|
+
EXECUTE ${schema}.job_table_format($cmd$ALTER TABLE ${schema}.job ADD CONSTRAINT job_key_strict_fifo_singleton_key_check CHECK (NOT (policy = 'key_strict_fifo' AND singleton_key IS NULL))$cmd$, tablename);
|
|
1181
|
+
END IF;
|
|
1182
|
+
|
|
1090
1183
|
EXECUTE format('ALTER TABLE ${schema}.%I ADD CONSTRAINT cjc CHECK (name=%L)', tablename, queue_name);
|
|
1091
1184
|
EXECUTE format('ALTER TABLE ${schema}.job ATTACH PARTITION ${schema}.%I FOR VALUES IN (%L)', tablename, queue_name);
|
|
1092
1185
|
END;
|
|
@@ -2030,6 +2123,40 @@ AS $function$
|
|
|
2030
2123
|
DROP COLUMN ready_oldest_seconds`,
|
|
2031
2124
|
`ALTER TABLE ${schema}.job DROP COLUMN trace_context`
|
|
2032
2125
|
]
|
|
2126
|
+
},
|
|
2127
|
+
{
|
|
2128
|
+
release: '12.37.0',
|
|
2129
|
+
version: 45,
|
|
2130
|
+
previous: 44,
|
|
2131
|
+
// upsert_by_key is nullable with no default, so adding it rewrites no rows, and no existing job
|
|
2132
|
+
// carries it. job_i13 therefore starts empty and cannot fail on existing duplicates.
|
|
2133
|
+
// It is built the way v43 built job_i12: inline without partitioning, otherwise through
|
|
2134
|
+
// create_queue for new partitions and BAM, concurrently, for the tables that already exist.
|
|
2135
|
+
install: [
|
|
2136
|
+
`ALTER TABLE ${schema}.job ADD COLUMN IF NOT EXISTS upsert_by_key bool`,
|
|
2137
|
+
noPartitioning
|
|
2138
|
+
? `CREATE UNIQUE INDEX job_i13 ON ${schema}.job (name, singleton_key) WHERE state = 'created' AND upsert_by_key`
|
|
2139
|
+
: createQueueFn[45](schema)
|
|
2140
|
+
],
|
|
2141
|
+
async: noPartitioning
|
|
2142
|
+
? []
|
|
2143
|
+
: [
|
|
2144
|
+
{
|
|
2145
|
+
name: 'upsert_index_build',
|
|
2146
|
+
command: `CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS job_i13 ON ${schema}.job (name, singleton_key) WHERE state = 'created' AND upsert_by_key`
|
|
2147
|
+
}
|
|
2148
|
+
],
|
|
2149
|
+
// The index goes before its column, and create_queue is restored first, as in v43. CASCADE because
|
|
2150
|
+
// CockroachDB will not drop a unique index without it.
|
|
2151
|
+
uninstall: [
|
|
2152
|
+
...(noPartitioning
|
|
2153
|
+
? [`DROP INDEX IF EXISTS ${schema}.job_i13 CASCADE`]
|
|
2154
|
+
: [
|
|
2155
|
+
createQueueFn[43](schema),
|
|
2156
|
+
`SELECT ${schema}.job_table_run($cmd$DROP INDEX IF EXISTS ${schema}.job_i13$cmd$)`
|
|
2157
|
+
]),
|
|
2158
|
+
`ALTER TABLE ${schema}.job DROP COLUMN upsert_by_key`
|
|
2159
|
+
]
|
|
2033
2160
|
}
|
|
2034
2161
|
];
|
|
2035
2162
|
}
|
package/dist/plans.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export interface SqlQuery {
|
|
|
6
6
|
}
|
|
7
7
|
export declare const PG_ERROR: {
|
|
8
8
|
divisionByZero: string;
|
|
9
|
+
lockNotAvailable: string;
|
|
10
|
+
foreignKeyViolation: string;
|
|
11
|
+
undefinedTable: string;
|
|
12
|
+
checkViolation: string;
|
|
9
13
|
};
|
|
10
14
|
export declare const DEFAULT_SCHEMA = "pgboss";
|
|
11
15
|
export declare const MIGRATE_RACE_MESSAGE = "division by zero";
|
|
@@ -109,7 +113,7 @@ export declare function jobTableFormatFunction(schema: string): string;
|
|
|
109
113
|
export declare function createQueue(schema: string, name: string, options: unknown, noAdvisoryLocks?: boolean): string;
|
|
110
114
|
export declare function notifyChannelSql(schema: string): string;
|
|
111
115
|
export declare function notifyQueue(schema: string, name: string): string;
|
|
112
|
-
export declare function deleteQueue(schema: string, name: string, noAdvisoryLocks?: boolean): string;
|
|
116
|
+
export declare function deleteQueue(schema: string, name: string, noAdvisoryLocks?: boolean, partitioned?: boolean): string;
|
|
113
117
|
export declare function trySetQueueMonitorTime(schema: string, queues: string[], seconds: number, skipLocked?: boolean): SqlQuery;
|
|
114
118
|
export declare function setMonitorBackoff(schema: string, elapsedSeconds: number): SqlQuery;
|
|
115
119
|
export declare function trySetQueueDeletionTime(schema: string, queues: string[], seconds: number, skipLocked?: boolean): SqlQuery;
|
|
@@ -184,7 +188,6 @@ interface FetchJobOptions {
|
|
|
184
188
|
priority?: boolean;
|
|
185
189
|
orderByCreatedOn?: boolean;
|
|
186
190
|
ignoreStartAfter?: boolean;
|
|
187
|
-
ignoreSingletons: string[] | null;
|
|
188
191
|
ignoreGroups?: string[] | null;
|
|
189
192
|
groupConcurrency?: number | GroupConcurrencyConfig;
|
|
190
193
|
minPriority?: number;
|
|
@@ -220,8 +223,9 @@ interface InsertJobsOptions {
|
|
|
220
223
|
returnId?: boolean;
|
|
221
224
|
notify?: boolean;
|
|
222
225
|
slots?: boolean;
|
|
226
|
+
upsertByKey?: boolean;
|
|
223
227
|
}
|
|
224
|
-
export declare function insertJobs(schema: string, { table, name, returnId, notify, slots }: InsertJobsOptions): string;
|
|
228
|
+
export declare function insertJobs(schema: string, { table, name, returnId, notify, slots, upsertByKey }: InsertJobsOptions): string;
|
|
225
229
|
export declare function insertFlowJobs(schema: string, { table, name }: {
|
|
226
230
|
table: string;
|
|
227
231
|
name: string;
|
|
@@ -306,6 +310,7 @@ interface QueuePartition {
|
|
|
306
310
|
table: string;
|
|
307
311
|
policy?: string | null;
|
|
308
312
|
}
|
|
313
|
+
export declare function uninstall(schema: string, partitioned?: boolean): string;
|
|
309
314
|
export declare const EXPECTED_JOB_STATES: readonly string[];
|
|
310
315
|
export declare function expectedManagedTables(schema: string, partitioned: boolean, partitions?: QueuePartition[]): string[];
|
|
311
316
|
export declare function expectedManagedColumns(schema: string, partitioned: boolean, partitions?: QueuePartition[]): ExpectedColumns[];
|
package/dist/plans.d.ts.map
CHANGED
|
@@ -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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"}
|