pg-boss 12.23.1 → 12.24.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/dist/adapters/drizzle.js +1 -1
- package/dist/adapters/knex.js +1 -1
- package/dist/attorney.d.ts.map +1 -1
- package/dist/attorney.js +10 -0
- package/dist/boss.d.ts.map +1 -1
- package/dist/boss.js +29 -1
- package/dist/contractor.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/manager.d.ts +1 -1
- package/dist/manager.d.ts.map +1 -1
- package/dist/manager.js +94 -17
- package/dist/migrationStore.d.ts +1 -1
- package/dist/migrationStore.d.ts.map +1 -1
- package/dist/migrationStore.js +179 -15
- package/dist/plans.d.ts +11 -0
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +298 -3
- package/dist/types.d.ts +50 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
package/dist/adapters/drizzle.js
CHANGED
package/dist/adapters/knex.js
CHANGED
package/dist/attorney.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attorney.d.ts","sourceRoot":"","sources":["../src/attorney.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,QAAA,MAAM,MAAM;;;;CAIX,CAAA;AAyDD,iBAAS,iBAAiB,CAAE,MAAM,GAAE,GAAQ,QAc3C;AAED,iBAAS,aAAa,CAAE,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAgDhD;AAWD,iBAAS,gBAAgB,CAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QA2D/C;AA2GD,iBAAS,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG;IAClD,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAA;IAClC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;CACjC,CA8BA;AAED,iBAAS,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAQlD;AAED,iBAAS,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,0BAA0B,CAwB9F;
|
|
1
|
+
{"version":3,"file":"attorney.d.ts","sourceRoot":"","sources":["../src/attorney.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,QAAA,MAAM,MAAM;;;;CAIX,CAAA;AAyDD,iBAAS,iBAAiB,CAAE,MAAM,GAAE,GAAQ,QAc3C;AAED,iBAAS,aAAa,CAAE,IAAI,EAAE,GAAG,GAAG,KAAK,CAAC,OAAO,CAgDhD;AAWD,iBAAS,gBAAgB,CAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QA2D/C;AA2GD,iBAAS,aAAa,CAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG;IAClD,OAAO,EAAE,KAAK,CAAC,mBAAmB,CAAA;IAClC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;CACjC,CA8BA;AAED,iBAAS,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAQlD;AAED,iBAAS,SAAS,CAAE,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,0BAA0B,CAwB9F;AAsDD,iBAAS,wBAAwB,CAAE,IAAI,EAAE,MAAM,QAK9C;AAED,iBAAS,eAAe,CAAE,IAAI,EAAE,MAAM,QAIrC;AAED,iBAAS,SAAS,CAAE,GAAG,EAAE,MAAM,QAI9B;AAoJD,OAAO,EACL,SAAS,EACT,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,SAAS,EACT,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EAClB,CAAA"}
|
package/dist/attorney.js
CHANGED
|
@@ -324,6 +324,11 @@ function resolveBackend(config) {
|
|
|
324
324
|
config.noSkipLocked = true;
|
|
325
325
|
config.noMultiMutationCte = true;
|
|
326
326
|
}
|
|
327
|
+
// Test hook: exercise the advisory-lock-free SQL path (used by YugabyteDB/CockroachDB) on a
|
|
328
|
+
// plain Postgres instance, without standing up a backend whose profile sets the flag.
|
|
329
|
+
if (config.__test__noAdvisoryLocks) {
|
|
330
|
+
config.noAdvisoryLocks = true;
|
|
331
|
+
}
|
|
327
332
|
}
|
|
328
333
|
function assertPostgresObjectName(name) {
|
|
329
334
|
assert(typeof name === 'string', 'Name must be a string');
|
|
@@ -400,6 +405,11 @@ function applyOpsConfig(config) {
|
|
|
400
405
|
assert(!('queueCacheIntervalSeconds' in config) || config.queueCacheIntervalSeconds >= 1, 'configuration assert: queueCacheIntervalSeconds must be at least every second');
|
|
401
406
|
config.queueCacheIntervalSeconds = config.queueCacheIntervalSeconds || 60;
|
|
402
407
|
assert(config.queueCacheIntervalSeconds / 60 / 60 <= POLICY.MAX_EXPIRATION_HOURS, `configuration assert: queueCacheIntervalSeconds cannot exceed ${POLICY.MAX_EXPIRATION_HOURS} hours`);
|
|
408
|
+
if ('queueStatRetentionDays' in config) {
|
|
409
|
+
assert(Number.isInteger(config.queueStatRetentionDays) && config.queueStatRetentionDays >= 1, 'configuration assert: queueStatRetentionDays must be an integer >= 1');
|
|
410
|
+
assert(config.queueStatRetentionDays <= POLICY.MAX_RETENTION_DAYS, `configuration assert: queueStatRetentionDays cannot exceed ${POLICY.MAX_RETENTION_DAYS} days`);
|
|
411
|
+
}
|
|
412
|
+
config.queueStatRetentionDays = config.queueStatRetentionDays || 7;
|
|
403
413
|
}
|
|
404
414
|
function validateDeletionConfig(config) {
|
|
405
415
|
assert(!('deleteAfterSeconds' in config) || config.deleteAfterSeconds >= 0, 'configuration assert: deleteAfterSeconds must be at least 0 (0 disables deletion)');
|
package/dist/boss.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boss.d.ts","sourceRoot":"","sources":["../src/boss.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAkBnC,cAAM,IAAK,SAAQ,YAAa,YAAW,KAAK,CAAC,WAAW;;IAS1D,MAAM;;;MAAS;gBAGb,EAAE,EAAE,KAAK,CAAC,SAAS,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,CAAC,0BAA0B;IAmB1C,IAAI,WAAW,IAAK,OAAO,CAE1B;IAEK,KAAK;IAWL,IAAI;
|
|
1
|
+
{"version":3,"file":"boss.d.ts","sourceRoot":"","sources":["../src/boss.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAkBnC,cAAM,IAAK,SAAQ,YAAa,YAAW,KAAK,CAAC,WAAW;;IAS1D,MAAM;;;MAAS;gBAGb,EAAE,EAAE,KAAK,CAAC,SAAS,EACnB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,CAAC,0BAA0B;IAmB1C,IAAI,WAAW,IAAK,OAAO,CAE1B;IAEK,KAAK;IAWL,IAAI;IA8FJ,SAAS,CAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,WAAW,EAAE;CAwItD;AAED,eAAe,IAAI,CAAA"}
|
package/dist/boss.js
CHANGED
|
@@ -97,7 +97,6 @@ class Boss extends EventEmitter {
|
|
|
97
97
|
}
|
|
98
98
|
const queues = await this.#manager.getQueues();
|
|
99
99
|
!this.#stopped && (await this.supervise(queues));
|
|
100
|
-
!this.#stopped && (await this.#maintainWarnings());
|
|
101
100
|
}
|
|
102
101
|
catch (err) {
|
|
103
102
|
this.emit(events.error, err);
|
|
@@ -113,6 +112,19 @@ class Boss extends EventEmitter {
|
|
|
113
112
|
const sql = plans.deleteOldWarnings(this.#config.schema, this.#config.warningRetentionDays);
|
|
114
113
|
await this.#executeQuery(sql);
|
|
115
114
|
}
|
|
115
|
+
async #ensureQueueStatsPartitions() {
|
|
116
|
+
const sql = plans.ensureQueueStatsPartitions(this.#config.schema);
|
|
117
|
+
await this.#executeQuery(sql);
|
|
118
|
+
}
|
|
119
|
+
async #maintainQueueStats() {
|
|
120
|
+
if (!this.#config.persistQueueStats || !this.#config.queueStatRetentionDays) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
const sql = this.#config.noTablePartitioning
|
|
124
|
+
? plans.deleteOldQueueStats(this.#config.schema, this.#config.queueStatRetentionDays)
|
|
125
|
+
: plans.dropOldQueueStatsPartitions(this.#config.schema, this.#config.queueStatRetentionDays);
|
|
126
|
+
await this.#executeQuery(sql);
|
|
127
|
+
}
|
|
116
128
|
async supervise(value) {
|
|
117
129
|
let queues;
|
|
118
130
|
if (Array.isArray(value)) {
|
|
@@ -121,6 +133,14 @@ class Boss extends EventEmitter {
|
|
|
121
133
|
else {
|
|
122
134
|
queues = await this.#manager.getQueues(value);
|
|
123
135
|
}
|
|
136
|
+
// Ensure today's/tomorrow's partitions exist before any insertQueueStats below. Retention
|
|
137
|
+
// (#maintainWarnings/#maintainQueueStats) runs at the tail. Both live here, in the public
|
|
138
|
+
// supervise() path that also performs the writes, rather than in the timer-only #onSupervise
|
|
139
|
+
// wrapper — so manual supervise() callers (instances run with the built-in supervisor disabled)
|
|
140
|
+
// get partitions provisioned and old data pruned, not just job retention.
|
|
141
|
+
if (this.#config.persistQueueStats && !this.#config.noTablePartitioning && !this.#stopping) {
|
|
142
|
+
await this.#ensureQueueStatsPartitions();
|
|
143
|
+
}
|
|
124
144
|
const queueGroups = queues.reduce((acc, q) => {
|
|
125
145
|
const { table } = q;
|
|
126
146
|
acc[table] = acc[table] || { table, queues: [] };
|
|
@@ -141,6 +161,10 @@ class Boss extends EventEmitter {
|
|
|
141
161
|
await this.#maintain(table, chunk);
|
|
142
162
|
}
|
|
143
163
|
}
|
|
164
|
+
if (this.#stopping)
|
|
165
|
+
return;
|
|
166
|
+
await this.#maintainWarnings();
|
|
167
|
+
await this.#maintainQueueStats();
|
|
144
168
|
}
|
|
145
169
|
async #monitor(table, names, heartbeatQueueNames) {
|
|
146
170
|
if (this.#stopping)
|
|
@@ -153,6 +177,10 @@ class Boss extends EventEmitter {
|
|
|
153
177
|
const queues = rows.map((q) => q.name);
|
|
154
178
|
const cacheStatsSql = plans.cacheQueueStats(this.#config.schema, table, queues, this.#config.noAdvisoryLocks);
|
|
155
179
|
const { rows: rowsCacheStats } = await this.#executeQuery(cacheStatsSql);
|
|
180
|
+
if (this.#config.persistQueueStats) {
|
|
181
|
+
const insertSql = plans.insertQueueStats(this.#config.schema, queues, this.#config.noAdvisoryLocks);
|
|
182
|
+
await this.#executeQuery(insertSql);
|
|
183
|
+
}
|
|
156
184
|
if (this.#stopping)
|
|
157
185
|
return;
|
|
158
186
|
// Coerce with Number(): CockroachDB returns these integer columns as strings, so a bare `>`
|
package/dist/contractor.js
CHANGED
|
@@ -22,7 +22,7 @@ class Contractor {
|
|
|
22
22
|
constructor(db, config) {
|
|
23
23
|
this.config = config;
|
|
24
24
|
this.db = db;
|
|
25
|
-
this.migrations = this.config.migrations || migrationStore.getAll(this.config.schema);
|
|
25
|
+
this.migrations = this.config.migrations || migrationStore.getAll(this.config.schema, this.config.noTablePartitioning, this.config.noCoveringIndexes);
|
|
26
26
|
}
|
|
27
27
|
async schemaVersion() {
|
|
28
28
|
const result = await this.db.executeSql(plans.getVersion(this.config.schema));
|
package/dist/index.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ export declare class PgBoss extends EventEmitter<types.PgBossEventMap> {
|
|
|
59
59
|
deleteQueue(name: string): Promise<void>;
|
|
60
60
|
getQueues(names?: string[]): Promise<types.QueueResult[]>;
|
|
61
61
|
getQueue(name: string): Promise<types.QueueResult | null>;
|
|
62
|
-
getQueueStats(name: string): Promise<types.
|
|
62
|
+
getQueueStats(name: string, options?: types.QueueStatsOptions): Promise<types.QueueStats[]>;
|
|
63
63
|
isMaintaining(): boolean;
|
|
64
64
|
isBamWorking(): boolean;
|
|
65
65
|
isResolvingFlow(): boolean;
|
|
@@ -80,7 +80,7 @@ export declare class PgBoss extends EventEmitter<types.PgBossEventMap> {
|
|
|
80
80
|
getBamEntries(): Promise<types.BamEntry[]>;
|
|
81
81
|
getDb(): types.IDatabase;
|
|
82
82
|
}
|
|
83
|
-
export type { BackendProfile, BackendOptions, BamEntry, BamEvent, BamStatusSummary, CommandResponse, CompleteOptions, ConnectionOptions, ConstructorOptions, DatabaseOptions, FetchGroupConcurrencyOptions, DependencyRef, FetchOptions, FindJobsOptions, FlowJob, GroupConcurrencyConfig, GroupOptions, IDatabase as Db, InsertOptions, Job, JobFetchOptions, JobInsert, JobOptions, JobPollingOptions, JobResult, JobResultStatus, JobStates, Events, JobWithMetadata, MaintenanceOptions, OffWorkOptions, PgBossEventMap, Queue, QueueOptions, QueuePolicy, QueueResult, RedriveOptions, Request, Schedule, ScheduleOptions, SchedulingOptions, SendOptions, StopOptions, UpdateQueueOptions, Warning, WipData, WorkConcurrencyOptions, WorkerState, WorkHandler, WorkOptions, WorkWithMetadataHandler, WorkHandlerFor, PerJobWorkHandler, PerJobWorkWithMetadataHandler, } from './types.ts';
|
|
83
|
+
export type { BackendProfile, BackendOptions, BamEntry, BamEvent, BamStatusSummary, CommandResponse, CompleteOptions, ConnectionOptions, ConstructorOptions, DatabaseOptions, FetchGroupConcurrencyOptions, DependencyRef, FetchOptions, FindJobsOptions, FlowJob, GroupConcurrencyConfig, GroupOptions, IDatabase as Db, InsertOptions, Job, JobFetchOptions, JobInsert, JobOptions, JobPollingOptions, JobResult, JobResultStatus, JobStates, Events, JobWithMetadata, MaintenanceOptions, OffWorkOptions, PgBossEventMap, Queue, QueueOptions, QueuePolicy, QueueResult, QueueStats, QueueStatsOptions, RedriveOptions, Request, Schedule, ScheduleOptions, SchedulingOptions, SendOptions, StopOptions, UpdateQueueOptions, Warning, WipData, WorkConcurrencyOptions, WorkerState, WorkHandler, WorkOptions, WorkWithMetadataHandler, WorkHandlerFor, PerJobWorkHandler, PerJobWorkWithMetadataHandler, } from './types.ts';
|
|
84
84
|
export type { JobSpyInterface, JobSpyState, JobDataSelector, JobSelector, SpyJob, } from './spy.ts';
|
|
85
85
|
export { fromKnex, fromKysely, fromDrizzle, fromPrisma, fromPglite, } from './adapters/index.ts';
|
|
86
86
|
export type { KnexTransactionLike, KyselyTransactionLike, DrizzleTransactionLike, DrizzleSqlTagLike, PrismaTransactionLike, PGliteLike, } from './adapters/index.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -281,8 +281,8 @@ export class PgBoss extends EventEmitter {
|
|
|
281
281
|
getQueue(name) {
|
|
282
282
|
return this.#manager.getQueue(name);
|
|
283
283
|
}
|
|
284
|
-
getQueueStats(name) {
|
|
285
|
-
return this.#manager.getQueueStats(name);
|
|
284
|
+
getQueueStats(name, options) {
|
|
285
|
+
return this.#manager.getQueueStats(name, options);
|
|
286
286
|
}
|
|
287
287
|
isMaintaining() {
|
|
288
288
|
return this.#boss.maintaining;
|
package/dist/manager.d.ts
CHANGED
|
@@ -96,7 +96,7 @@ declare class Manager extends EventEmitter implements types.EventsMixin {
|
|
|
96
96
|
deleteQueuedJobs(name: string): Promise<void>;
|
|
97
97
|
deleteStoredJobs(name: string): Promise<void>;
|
|
98
98
|
deleteAllJobs(name?: string): Promise<void>;
|
|
99
|
-
getQueueStats(name: string): Promise<
|
|
99
|
+
getQueueStats(name: string, options?: types.QueueStatsOptions): Promise<types.QueueStats[]>;
|
|
100
100
|
getJobById<T>(name: string, id: string, options?: types.ConnectionOptions): Promise<types.JobWithMetadata<T> | null>;
|
|
101
101
|
findJobs<T>(name: string, options?: types.FindJobsOptions): Promise<types.JobWithMetadata<T>[]>;
|
|
102
102
|
getDependencies(name: string, id: string, options?: types.ConnectionOptions): Promise<types.DependencyRef[]>;
|
package/dist/manager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,aAAa,CAAA;AAGtC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAG7C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAU,KAAK,eAAe,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../src/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/manager.js
CHANGED
|
@@ -38,6 +38,24 @@ const NUMERIC_QUEUE_FIELDS = [
|
|
|
38
38
|
'activeCount',
|
|
39
39
|
'totalCount'
|
|
40
40
|
];
|
|
41
|
+
// The count columns shared by live stats and recorded snapshots (the QueueStats shape).
|
|
42
|
+
const STATS_COUNT_FIELDS = [
|
|
43
|
+
'deferredCount',
|
|
44
|
+
'queuedCount',
|
|
45
|
+
'readyCount',
|
|
46
|
+
'activeCount',
|
|
47
|
+
'failedCount',
|
|
48
|
+
'totalCount'
|
|
49
|
+
];
|
|
50
|
+
// Stale-cache budget for getQueueStats when persistQueueStats is off. A queue-table cache older than
|
|
51
|
+
// this means monitoring isn't keeping it current (e.g. supervise was enabled once but isn't now), so
|
|
52
|
+
// the counts are recomputed and re-cached instead of returned. Defaults to one hour, raised to the
|
|
53
|
+
// configured monitor/supervise interval when that's larger (both capped at MAX_EXPIRATION_HOURS).
|
|
54
|
+
const QUEUE_STATS_CACHE_TTL_SECONDS = 60 * 60;
|
|
55
|
+
// Tighter budget applied when getQueueStats is called with { force: true }: recompute for a fresh
|
|
56
|
+
// reading, but still reuse anything computed within the last minute so back-to-back forced calls
|
|
57
|
+
// don't each re-run the job-table aggregate.
|
|
58
|
+
const QUEUE_STATS_FORCE_TTL_SECONDS = 60;
|
|
41
59
|
const events = {
|
|
42
60
|
error: 'error',
|
|
43
61
|
wip: 'wip'
|
|
@@ -481,6 +499,10 @@ class Manager extends EventEmitter {
|
|
|
481
499
|
this.queues[name] = queue;
|
|
482
500
|
return queue;
|
|
483
501
|
}
|
|
502
|
+
#evictQueueCache(name) {
|
|
503
|
+
if (this.queues)
|
|
504
|
+
delete this.queues[name];
|
|
505
|
+
}
|
|
484
506
|
async stop() {
|
|
485
507
|
this.stopped = true;
|
|
486
508
|
clearInterval(this.queueCacheInterval);
|
|
@@ -1226,6 +1248,7 @@ class Manager extends EventEmitter {
|
|
|
1226
1248
|
}
|
|
1227
1249
|
const sql = plans.createQueue(this.config.schema, name, { ...options, policy }, this.config.noAdvisoryLocks);
|
|
1228
1250
|
await this.db.executeSql(sql);
|
|
1251
|
+
this.#evictQueueCache(name);
|
|
1229
1252
|
}
|
|
1230
1253
|
async getBlockedKeys(name) {
|
|
1231
1254
|
Attorney.assertQueueName(name);
|
|
@@ -1274,6 +1297,7 @@ class Manager extends EventEmitter {
|
|
|
1274
1297
|
}
|
|
1275
1298
|
const sql = plans.updateQueue(this.config.schema, { deadLetter });
|
|
1276
1299
|
await this.db.executeSql(sql, [name, options]);
|
|
1300
|
+
this.#evictQueueCache(name);
|
|
1277
1301
|
}
|
|
1278
1302
|
async getQueue(name) {
|
|
1279
1303
|
const rows = await this.getQueues([name]);
|
|
@@ -1285,6 +1309,7 @@ class Manager extends EventEmitter {
|
|
|
1285
1309
|
await this.getQueueCache(name);
|
|
1286
1310
|
const sql = plans.deleteQueue(this.config.schema, name, this.config.noAdvisoryLocks);
|
|
1287
1311
|
await this.db.executeSql(sql);
|
|
1312
|
+
this.#evictQueueCache(name);
|
|
1288
1313
|
}
|
|
1289
1314
|
catch { }
|
|
1290
1315
|
}
|
|
@@ -1317,29 +1342,81 @@ class Manager extends EventEmitter {
|
|
|
1317
1342
|
await this.db.executeSql(sql, [name]);
|
|
1318
1343
|
}
|
|
1319
1344
|
}
|
|
1320
|
-
|
|
1345
|
+
// Queue stats are a time series, always returned as an array (newest first).
|
|
1346
|
+
//
|
|
1347
|
+
// With persistQueueStats enabled this returns the recorded history, optionally bounded by
|
|
1348
|
+
// from/to/limit. With it disabled there's no series, so it returns a single datapoint built from
|
|
1349
|
+
// the cached counts the monitor maintains on the queue table — cheap, and avoids re-running the
|
|
1350
|
+
// job-table aggregate on every call. The aggregate runs only when { force: true } is passed or the
|
|
1351
|
+
// cache is missing/stale; either way the fresh counts are written back to the cache so later reads
|
|
1352
|
+
// stay cheap. Throws if the queue doesn't exist. For the cached counts as a single value, use
|
|
1353
|
+
// getQueue(name).
|
|
1354
|
+
async getQueueStats(name, options = {}) {
|
|
1321
1355
|
Attorney.assertQueueName(name);
|
|
1322
|
-
const
|
|
1323
|
-
const
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
// CockroachDB returns integer columns as strings; normalize the stats counts. (The queue fields
|
|
1327
|
-
// merged in below come from getQueueCache -> getQueues, which already normalizes them.)
|
|
1328
|
-
if (stats && this.config.backend === 'cockroachdb') {
|
|
1329
|
-
for (const field of NUMERIC_QUEUE_FIELDS) {
|
|
1330
|
-
if (stats[field] !== undefined && stats[field] !== null)
|
|
1331
|
-
stats[field] = Number(stats[field]);
|
|
1332
|
-
}
|
|
1333
|
-
}
|
|
1334
|
-
return Object.assign(queue, stats ||
|
|
1335
|
-
{
|
|
1356
|
+
const isCockroach = this.config.backend === 'cockroachdb';
|
|
1357
|
+
const toSnapshot = (row) => {
|
|
1358
|
+
const snapshot = {
|
|
1359
|
+
name,
|
|
1336
1360
|
deferredCount: 0,
|
|
1337
1361
|
queuedCount: 0,
|
|
1338
1362
|
readyCount: 0,
|
|
1339
1363
|
activeCount: 0,
|
|
1340
1364
|
failedCount: 0,
|
|
1341
|
-
totalCount: 0
|
|
1342
|
-
|
|
1365
|
+
totalCount: 0,
|
|
1366
|
+
capturedOn: row?.capturedOn ?? new Date()
|
|
1367
|
+
};
|
|
1368
|
+
for (const field of STATS_COUNT_FIELDS) {
|
|
1369
|
+
const value = row?.[field];
|
|
1370
|
+
// CockroachDB returns integer columns as strings; normalize the counts.
|
|
1371
|
+
if (value !== undefined && value !== null)
|
|
1372
|
+
snapshot[field] = isCockroach ? Number(value) : value;
|
|
1373
|
+
}
|
|
1374
|
+
return snapshot;
|
|
1375
|
+
};
|
|
1376
|
+
if (this.config.persistQueueStats) {
|
|
1377
|
+
// Validate the queue exists (consistent with the persistence-off path below); the history
|
|
1378
|
+
// query itself would just return an empty series for an unknown name.
|
|
1379
|
+
await this.getQueueCache(name);
|
|
1380
|
+
const { from = null, to = null, limit = 1000, bucketSeconds, maxDataPoints, aggregate = 'max' } = options;
|
|
1381
|
+
assert(Number.isInteger(limit) && limit >= 1 && limit <= 100_000, 'getQueueStats: limit must be an integer between 1 and 100000');
|
|
1382
|
+
// Downsample into time buckets when requested. bucketSeconds sets an explicit resolution;
|
|
1383
|
+
// maxDataPoints derives the width in-SQL so the series fits in ~N points. Explicit wins.
|
|
1384
|
+
if (bucketSeconds !== undefined || maxDataPoints !== undefined) {
|
|
1385
|
+
assert(aggregate === 'max' || aggregate === 'min' || aggregate === 'avg', "getQueueStats: aggregate must be 'max', 'min', or 'avg'");
|
|
1386
|
+
const mode = bucketSeconds !== undefined ? 'bucket' : 'auto';
|
|
1387
|
+
const width = bucketSeconds ?? maxDataPoints;
|
|
1388
|
+
assert(Number.isInteger(width) && width >= 1, `getQueueStats: ${mode === 'bucket' ? 'bucketSeconds' : 'maxDataPoints'} must be a positive integer`);
|
|
1389
|
+
const sql = plans.getQueueStatsHistoryBucketed(this.config.schema, aggregate, mode);
|
|
1390
|
+
const { rows } = await this.db.executeSql(sql, [name, from, to, limit, width]);
|
|
1391
|
+
return rows.map(toSnapshot);
|
|
1392
|
+
}
|
|
1393
|
+
const sql = plans.getQueueStatsHistory(this.config.schema);
|
|
1394
|
+
const { rows } = await this.db.executeSql(sql, [name, from, to, limit]);
|
|
1395
|
+
return rows.map(toSnapshot);
|
|
1396
|
+
}
|
|
1397
|
+
// persistQueueStats disabled: serve the cached counts the monitor keeps on the queue table.
|
|
1398
|
+
// capturedOn is monitor_on — NULL if never monitored, or old if monitoring has since been turned
|
|
1399
|
+
// off. Serve the cache while it's within budget; otherwise recompute and re-cache. { force: true }
|
|
1400
|
+
// applies a much tighter budget (a fresh reading), but still reuses a value computed in the last
|
|
1401
|
+
// minute so repeated forced calls don't each re-run the aggregate.
|
|
1402
|
+
const cacheSql = plans.getQueueStatsCache(this.config.schema);
|
|
1403
|
+
const { rows: cacheRows } = await this.db.executeSql(cacheSql, [name]);
|
|
1404
|
+
const cached = cacheRows.at(0);
|
|
1405
|
+
if (!cached) {
|
|
1406
|
+
throw new Error(`Queue ${name} does not exist`);
|
|
1407
|
+
}
|
|
1408
|
+
const maxCacheAgeMs = (options.force
|
|
1409
|
+
? QUEUE_STATS_FORCE_TTL_SECONDS
|
|
1410
|
+
: Math.max(QUEUE_STATS_CACHE_TTL_SECONDS, this.config.monitorIntervalSeconds ?? 0, this.config.superviseIntervalSeconds ?? 0)) * 1000;
|
|
1411
|
+
const cacheAgeMs = cached.capturedOn == null
|
|
1412
|
+
? Infinity
|
|
1413
|
+
: Date.now() - new Date(cached.capturedOn).getTime();
|
|
1414
|
+
if (cacheAgeMs <= maxCacheAgeMs) {
|
|
1415
|
+
return [toSnapshot(cached)];
|
|
1416
|
+
}
|
|
1417
|
+
const refreshSql = plans.refreshQueueStats(this.config.schema, cached.table, name);
|
|
1418
|
+
const { rows: refreshed } = await this.db.executeSql(refreshSql);
|
|
1419
|
+
return [toSnapshot(refreshed.at(0) ?? cached)];
|
|
1343
1420
|
}
|
|
1344
1421
|
async getJobById(name, id, options = {}) {
|
|
1345
1422
|
Attorney.assertQueueName(name);
|
package/dist/migrationStore.d.ts
CHANGED
|
@@ -11,6 +11,6 @@ declare function rollback(schema: string, version: number, migrations?: types.Mi
|
|
|
11
11
|
declare function next(schema: string, version: number, migrations?: types.Migration[], noAdvisoryLocks?: boolean): string;
|
|
12
12
|
declare function migrateCommands(schema: string, version: number, migrations?: types.Migration[], noAdvisoryLocks?: boolean, options?: MigrateOptions): MigrationCommands;
|
|
13
13
|
declare function migrate(schema: string, version: number, migrations?: types.Migration[], noAdvisoryLocks?: boolean, options?: MigrateOptions): string;
|
|
14
|
-
declare function getAll(schema: string): types.Migration[];
|
|
14
|
+
declare function getAll(schema: string, noPartitioning?: boolean, noCovering?: boolean): types.Migration[];
|
|
15
15
|
export { rollback, next, migrate, migrateCommands, getAll, };
|
|
16
16
|
//# sourceMappingURL=migrationStore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationStore.d.ts","sourceRoot":"","sources":["../src/migrationStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAKnC,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IAIrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;
|
|
1
|
+
{"version":3,"file":"migrationStore.d.ts","sourceRoot":"","sources":["../src/migrationStore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAKnC,UAAU,cAAc;IACtB,WAAW,CAAC,EAAE,OAAO,CAAA;IAIrB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AA4CD,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,UAQ5G;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,CAgCrK;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;AAopBD,iBAAS,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,cAAc,UAAQ,EAAE,UAAU,UAAQ,GAAG,KAAK,CAAC,SAAS,EAAE,CAmZ9F;AAED,OAAO,EACL,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,eAAe,EACf,MAAM,GACP,CAAA"}
|
package/dist/migrationStore.js
CHANGED
|
@@ -23,7 +23,10 @@ function inlineAsyncCommand(schema, asyncCommand, version, partitionTables) {
|
|
|
23
23
|
const body = bodyMatch[1].trim();
|
|
24
24
|
const targetTables = tableMatch ? [tableMatch[1]] : ['job_common', ...partitionTables];
|
|
25
25
|
return targetTables.map(table => {
|
|
26
|
-
|
|
26
|
+
// Add IF NOT EXISTS so the exported script is re-runnable. The negative lookahead keeps it
|
|
27
|
+
// idempotent when the async command already spells out IF NOT EXISTS (the live BAM path needs it
|
|
28
|
+
// there for its own idempotency — e.g. migration v36's job_i9 build), avoiding a double insert.
|
|
29
|
+
const ddl = formatJobTable(body, table).replace(/(CREATE (?:UNIQUE )?INDEX CONCURRENTLY)(?! IF NOT EXISTS) /, '$1 IF NOT EXISTS ');
|
|
27
30
|
const comment = `-- inlined from ${schema}.job_table_run_async (migration v${version}, command: ${commandName})`;
|
|
28
31
|
return `${comment}\n${ddl}`;
|
|
29
32
|
});
|
|
@@ -656,7 +659,80 @@ const createQueueFn = {
|
|
|
656
659
|
LANGUAGE plpgsql;
|
|
657
660
|
`
|
|
658
661
|
};
|
|
659
|
-
|
|
662
|
+
// Frozen per-version snapshots of the queue_stats DDL, version-keyed like createQueueFn above. A
|
|
663
|
+
// migration must always emit the DDL as it was authored for that schema version; the plans.* builders
|
|
664
|
+
// track the *current* schema and will drift as it evolves, so the migration copies the DDL here
|
|
665
|
+
// rather than importing it. When a later version changes queue_stats, add a new keyed entry and leave
|
|
666
|
+
// the older ones untouched.
|
|
667
|
+
const createTableQueueStatsFn = {
|
|
668
|
+
35: (schema, noPartitioning) => noPartitioning
|
|
669
|
+
? `
|
|
670
|
+
CREATE TABLE ${schema}.queue_stats (
|
|
671
|
+
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
672
|
+
name text NOT NULL,
|
|
673
|
+
deferred_count int NOT NULL DEFAULT 0,
|
|
674
|
+
queued_count int NOT NULL DEFAULT 0,
|
|
675
|
+
ready_count int NOT NULL DEFAULT 0,
|
|
676
|
+
active_count int NOT NULL DEFAULT 0,
|
|
677
|
+
failed_count int NOT NULL DEFAULT 0,
|
|
678
|
+
total_count int NOT NULL DEFAULT 0,
|
|
679
|
+
captured_on timestamptz NOT NULL DEFAULT now(),
|
|
680
|
+
PRIMARY KEY (id)
|
|
681
|
+
)
|
|
682
|
+
`
|
|
683
|
+
: `
|
|
684
|
+
CREATE TABLE ${schema}.queue_stats (
|
|
685
|
+
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
686
|
+
name text NOT NULL,
|
|
687
|
+
deferred_count int NOT NULL DEFAULT 0,
|
|
688
|
+
queued_count int NOT NULL DEFAULT 0,
|
|
689
|
+
ready_count int NOT NULL DEFAULT 0,
|
|
690
|
+
active_count int NOT NULL DEFAULT 0,
|
|
691
|
+
failed_count int NOT NULL DEFAULT 0,
|
|
692
|
+
total_count int NOT NULL DEFAULT 0,
|
|
693
|
+
captured_on timestamptz NOT NULL DEFAULT now(),
|
|
694
|
+
PRIMARY KEY (id, captured_on)
|
|
695
|
+
) PARTITION BY RANGE (captured_on)
|
|
696
|
+
`
|
|
697
|
+
};
|
|
698
|
+
const createIndexQueueStatsFn = {
|
|
699
|
+
35: (schema, noCovering) => {
|
|
700
|
+
const cols = '(name, captured_on DESC)';
|
|
701
|
+
const include = 'INCLUDE (deferred_count, queued_count, ready_count, active_count, failed_count, total_count)';
|
|
702
|
+
return noCovering
|
|
703
|
+
? `CREATE INDEX queue_stats_i1 ON ${schema}.queue_stats ${cols}`
|
|
704
|
+
: `CREATE INDEX queue_stats_i1 ON ${schema}.queue_stats ${cols} ${include}`;
|
|
705
|
+
}
|
|
706
|
+
};
|
|
707
|
+
const ensureQueueStatsPartitionsFn = {
|
|
708
|
+
35: (schema) => `
|
|
709
|
+
DO $$
|
|
710
|
+
DECLARE
|
|
711
|
+
d date;
|
|
712
|
+
i int;
|
|
713
|
+
part_name text;
|
|
714
|
+
BEGIN
|
|
715
|
+
FOR i IN 0..1 LOOP
|
|
716
|
+
d := (now() AT TIME ZONE 'UTC')::date + i;
|
|
717
|
+
part_name := 'queue_stats_' || to_char(d, 'YYYYMMDD');
|
|
718
|
+
IF NOT EXISTS (
|
|
719
|
+
SELECT 1 FROM pg_class c
|
|
720
|
+
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
721
|
+
WHERE n.nspname = '${schema}' AND c.relname = part_name
|
|
722
|
+
) THEN
|
|
723
|
+
EXECUTE format(
|
|
724
|
+
'CREATE TABLE ${schema}.%I PARTITION OF ${schema}.queue_stats FOR VALUES FROM (%L) TO (%L)',
|
|
725
|
+
part_name,
|
|
726
|
+
to_char(d, 'YYYY-MM-DD') || ' 00:00:00+00',
|
|
727
|
+
to_char(d + 1, 'YYYY-MM-DD') || ' 00:00:00+00'
|
|
728
|
+
);
|
|
729
|
+
END IF;
|
|
730
|
+
END LOOP;
|
|
731
|
+
END;
|
|
732
|
+
$$
|
|
733
|
+
`
|
|
734
|
+
};
|
|
735
|
+
function getAll(schema, noPartitioning = false, noCovering = false) {
|
|
660
736
|
return [
|
|
661
737
|
{
|
|
662
738
|
release: '11.1.0',
|
|
@@ -890,8 +966,16 @@ function getAll(schema) {
|
|
|
890
966
|
)
|
|
891
967
|
`,
|
|
892
968
|
`CREATE INDEX IF NOT EXISTS job_dep_parent_idx ON ${schema}.job_dependency (parent_name, parent_id)`,
|
|
893
|
-
|
|
894
|
-
|
|
969
|
+
// NOTE: the v31 job_i5 rebuild (adding `AND NOT blocked`) is intentionally omitted — v33
|
|
970
|
+
// drops and rebuilds job_i5 again (slimming off the covering INCLUDE), so on a multi-version
|
|
971
|
+
// upgrade (<= v31 -> >= v33, applied as one migration transaction) this only built a covering
|
|
972
|
+
// index that v33 immediately throws away. The whole migration runs in a single transaction,
|
|
973
|
+
// so no worker observes the pre-v33 shape; the old job_i5 simply persists untouched until v33
|
|
974
|
+
// replaces it. Anyone who already migrated to exactly v31/v32 keeps the index they built then,
|
|
975
|
+
// so removing the build here does not affect them. New partitions created while on v31 still
|
|
976
|
+
// get the correct shape from createQueueFn[31] below.
|
|
977
|
+
// `SELECT ${schema}.job_table_run($cmd$DROP INDEX IF EXISTS ${schema}.job_i5$cmd$)`,
|
|
978
|
+
// `SELECT ${schema}.job_table_run($cmd$CREATE INDEX job_i5 ON ${schema}.job (name, start_after) INCLUDE (priority, created_on, id) WHERE state < 'active' AND NOT blocked$cmd$)`,
|
|
895
979
|
createQueueFn[31](schema)
|
|
896
980
|
],
|
|
897
981
|
uninstall: [
|
|
@@ -928,19 +1012,52 @@ function getAll(schema) {
|
|
|
928
1012
|
previous: 32,
|
|
929
1013
|
install: [
|
|
930
1014
|
`ALTER TABLE ${schema}.version ADD COLUMN IF NOT EXISTS flow_on timestamp with time zone`,
|
|
931
|
-
// The
|
|
932
|
-
//
|
|
933
|
-
//
|
|
934
|
-
//
|
|
935
|
-
|
|
936
|
-
//
|
|
937
|
-
//
|
|
938
|
-
//
|
|
939
|
-
//
|
|
940
|
-
|
|
941
|
-
|
|
1015
|
+
// The job_i9 build and job_i5 reshape are run OFF the migration transaction, via BAM as
|
|
1016
|
+
// CONCURRENTLY DDL — see the `async` block below. The original v33 ran them synchronously here
|
|
1017
|
+
// via job_table_run(), taking SHARE/ACCESS EXCLUSIVE locks on job_common + every partition
|
|
1018
|
+
// inside the migration transaction, which deadlocked live workers polling job_common during a
|
|
1019
|
+
// rolling deploy (issue #832).
|
|
1020
|
+
//
|
|
1021
|
+
// Only databases that have NOT yet passed v33 execute this install, and they always have the
|
|
1022
|
+
// covering job_i5 (the slim form is introduced here) — so the reshape never needlessly
|
|
1023
|
+
// rebuilds an already-slim index. Databases already past v33 keep what they built then; they
|
|
1024
|
+
// pick up only the bam default change, carried separately by migration v36.
|
|
1025
|
+
//
|
|
1026
|
+
// Set the bam queue's created_on default to clock_timestamp() BEFORE the enqueues below. BAM
|
|
1027
|
+
// applies queued commands in created_on order, and the job_i5 reshape is an ordered
|
|
1028
|
+
// drop-then-rebuild; now() is constant within this migration transaction and would tie them.
|
|
1029
|
+
// (Migrations run in version order, so this must be in v33 — v36 runs after these enqueues.)
|
|
1030
|
+
`ALTER TABLE ${schema}.bam ALTER COLUMN created_on SET DEFAULT clock_timestamp()`,
|
|
942
1031
|
createQueueFn[33](schema)
|
|
943
1032
|
],
|
|
1033
|
+
async: [
|
|
1034
|
+
// Partial index backing the background flow resolver.
|
|
1035
|
+
`SELECT ${schema}.job_table_run_async(
|
|
1036
|
+
'flow_resolver_index',
|
|
1037
|
+
$VERSION$,
|
|
1038
|
+
$$
|
|
1039
|
+
CREATE INDEX CONCURRENTLY IF NOT EXISTS job_i9 ON ${schema}.job (name, id) WHERE blocking AND state = 'completed'
|
|
1040
|
+
$$
|
|
1041
|
+
)`,
|
|
1042
|
+
// Slim the fetch index job_i5: drop the covering INCLUDE (priority, created_on, id) — the
|
|
1043
|
+
// fetch's FOR UPDATE ... SKIP LOCKED forces heap access, so the payload was never read from
|
|
1044
|
+
// the index. Drop-then-rebuild (CONCURRENTLY can't reshape in place); BAM runs them in
|
|
1045
|
+
// created_on order, drop before rebuild (see the clock_timestamp() default set above).
|
|
1046
|
+
`SELECT ${schema}.job_table_run_async(
|
|
1047
|
+
'fetch_index_drop',
|
|
1048
|
+
$VERSION$,
|
|
1049
|
+
$$
|
|
1050
|
+
DROP INDEX CONCURRENTLY IF EXISTS ${schema}.job_i5
|
|
1051
|
+
$$
|
|
1052
|
+
)`,
|
|
1053
|
+
`SELECT ${schema}.job_table_run_async(
|
|
1054
|
+
'fetch_index',
|
|
1055
|
+
$VERSION$,
|
|
1056
|
+
$$
|
|
1057
|
+
CREATE INDEX CONCURRENTLY IF NOT EXISTS job_i5 ON ${schema}.job (name, start_after) WHERE state < 'active' AND NOT blocked
|
|
1058
|
+
$$
|
|
1059
|
+
)`
|
|
1060
|
+
],
|
|
944
1061
|
uninstall: [
|
|
945
1062
|
createQueueFn[32](schema),
|
|
946
1063
|
// Restore the covering INCLUDE on the fetch index (the v32 shape).
|
|
@@ -969,6 +1086,53 @@ function getAll(schema) {
|
|
|
969
1086
|
`ALTER TABLE ${schema}.job DROP COLUMN source_created_on`,
|
|
970
1087
|
`ALTER TABLE ${schema}.job DROP COLUMN source_retry_count`
|
|
971
1088
|
]
|
|
1089
|
+
},
|
|
1090
|
+
{
|
|
1091
|
+
release: '12.24.0',
|
|
1092
|
+
version: 35,
|
|
1093
|
+
previous: 34,
|
|
1094
|
+
// Mirror plans.create(): honor noTablePartitioning so upgrades on non-partitioning
|
|
1095
|
+
// deployments (e.g. CockroachDB, which rejects declarative RANGE partitioning) get a plain
|
|
1096
|
+
// queue_stats table instead of a partitioned one they could never maintain. noCovering is a
|
|
1097
|
+
// separate axis (CockroachDB sets it, YugabyteDB doesn't) gating the index's covering INCLUDE.
|
|
1098
|
+
// Also adds queue.ready_history: an always-on sliding window of recent ready counts on the
|
|
1099
|
+
// queue row for the dashboard sparkline (maintained by cacheQueueStats every monitor cycle,
|
|
1100
|
+
// independent of persistQueueStats). NOT NULL DEFAULT '{}' backfills existing rows with an
|
|
1101
|
+
// empty window that fills in over the next monitor cycles.
|
|
1102
|
+
install: [
|
|
1103
|
+
...(noPartitioning
|
|
1104
|
+
? [
|
|
1105
|
+
createTableQueueStatsFn[35](schema, true),
|
|
1106
|
+
createIndexQueueStatsFn[35](schema, noCovering)
|
|
1107
|
+
]
|
|
1108
|
+
: [
|
|
1109
|
+
createTableQueueStatsFn[35](schema, false),
|
|
1110
|
+
createIndexQueueStatsFn[35](schema, noCovering),
|
|
1111
|
+
ensureQueueStatsPartitionsFn[35](schema)
|
|
1112
|
+
]),
|
|
1113
|
+
`ALTER TABLE ${schema}.queue ADD COLUMN ready_history int[] NOT NULL DEFAULT '{}'`
|
|
1114
|
+
],
|
|
1115
|
+
uninstall: [
|
|
1116
|
+
`ALTER TABLE ${schema}.queue DROP COLUMN ready_history`,
|
|
1117
|
+
`DROP TABLE IF EXISTS ${schema}.queue_stats`
|
|
1118
|
+
]
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
release: '12.24.1',
|
|
1122
|
+
version: 36,
|
|
1123
|
+
previous: 35,
|
|
1124
|
+
// Carry only the bam.created_on default change (now() -> clock_timestamp()) to databases that
|
|
1125
|
+
// already ran v33 and so won't re-run its install. This keeps a fully-migrated database's schema
|
|
1126
|
+
// identical to a fresh install (plans.create builds the bam table with this default), and lets a
|
|
1127
|
+
// future async migration enqueue an ordered drop-then-rebuild without the now() tie. The ALTER
|
|
1128
|
+
// is idempotent, so databases that just ran v33's copy of it (a multi-version upgrade) are
|
|
1129
|
+
// unaffected. No index work here — that lives in v33, which the deadlock-affected (pre-v33)
|
|
1130
|
+
// databases run; databases already past v33 keep the indexes they built and skip the churn.
|
|
1131
|
+
install: [
|
|
1132
|
+
`ALTER TABLE ${schema}.bam ALTER COLUMN created_on SET DEFAULT clock_timestamp()`
|
|
1133
|
+
],
|
|
1134
|
+
// The default change is forward-compatible and harmless to keep, so rollback leaves it in place.
|
|
1135
|
+
uninstall: []
|
|
972
1136
|
}
|
|
973
1137
|
];
|
|
974
1138
|
}
|
package/dist/plans.d.ts
CHANGED
|
@@ -66,6 +66,15 @@ export declare function insertWarning(schema: string): string;
|
|
|
66
66
|
export declare function getWarnings(schema: string): string;
|
|
67
67
|
export declare function getWarningsCount(schema: string): string;
|
|
68
68
|
export declare function deleteOldWarnings(schema: string, days: number): string;
|
|
69
|
+
export declare function createTableQueueStats(schema: string, noPartitioning?: boolean): string;
|
|
70
|
+
export declare function createIndexQueueStats(schema: string, noCoveringIndex?: boolean): string;
|
|
71
|
+
export declare function ensureQueueStatsPartitions(schema: string): string;
|
|
72
|
+
export declare function dropOldQueueStatsPartitions(schema: string, days: number): string;
|
|
73
|
+
export declare function deleteOldQueueStats(schema: string, days: number): string;
|
|
74
|
+
export declare function insertQueueStats(schema: string, queues: string[], noAdvisoryLocks?: boolean): string;
|
|
75
|
+
export declare function getQueueStatsCache(schema: string): string;
|
|
76
|
+
export declare function getQueueStatsHistory(schema: string): string;
|
|
77
|
+
export declare function getQueueStatsHistoryBucketed(schema: string, aggregate: 'max' | 'min' | 'avg', mode: 'bucket' | 'auto'): string;
|
|
69
78
|
export declare function getVersion(schema: string): string;
|
|
70
79
|
export declare function setVersion(schema: string, version: number): string;
|
|
71
80
|
export declare function versionTableExists(schema: string): string;
|
|
@@ -148,7 +157,9 @@ export declare function redriveJobs(schema: string, table: string): string;
|
|
|
148
157
|
export declare function deletion(schema: string, table: string, queues: string[], noAdvisoryLocks?: boolean): string;
|
|
149
158
|
export declare function retryJobs(schema: string, table: string): string;
|
|
150
159
|
export declare function getQueueStats(schema: string, table: string, queues: string[]): SqlQuery;
|
|
160
|
+
export declare const READY_HISTORY_SIZE = 60;
|
|
151
161
|
export declare function cacheQueueStats(schema: string, table: string, queues: string[], noAdvisoryLocks?: boolean): string;
|
|
162
|
+
export declare function refreshQueueStats(schema: string, table: string, name: string): string;
|
|
152
163
|
export declare function serializeArrayParam(values: string[]): string;
|
|
153
164
|
export declare function serializeJsonParam(value: unknown): string;
|
|
154
165
|
export declare function transaction(query: string | string[]): string;
|
package/dist/plans.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAEpD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB;AAED,eAAO,MAAM,QAAQ;;CAEpB,CAAA;AAED,eAAO,MAAM,cAAc,WAAW,CAAA;AACtC,eAAO,MAAM,oBAAoB,qBAAqB,CAAA;AACtD,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAMnD,eAAO,MAAM,UAAU;;;;;;;EAOrB,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;EAOzB,CAAA;AAeF,UAAU,aAAa;IACrB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,uBAAuB,CAAC,EAAE,OAAO,CAAA;IACjC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,wBAAgB,MAAM,CAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
|
package/dist/plans.js
CHANGED
|
@@ -60,6 +60,9 @@ export function create(schema, version, options) {
|
|
|
60
60
|
noPartitioning ? createTableJobIndexes(schema, noDeferrable, noCovering) : createTableJobCommon(schema),
|
|
61
61
|
createTableWarning(schema),
|
|
62
62
|
createIndexWarning(schema),
|
|
63
|
+
createTableQueueStats(schema, noPartitioning),
|
|
64
|
+
createIndexQueueStats(schema, noCovering),
|
|
65
|
+
noPartitioning ? '' : ensureQueueStatsPartitions(schema),
|
|
63
66
|
createTableJobDependency(schema),
|
|
64
67
|
createIndexJobDependencyParent(schema),
|
|
65
68
|
createQueueFunction(schema, noPartitioning),
|
|
@@ -117,6 +120,7 @@ function createTableQueue(schema) {
|
|
|
117
120
|
active_count int NOT NULL default 0,
|
|
118
121
|
failed_count int NOT NULL default 0,
|
|
119
122
|
total_count int NOT NULL default 0,
|
|
123
|
+
ready_history int[] NOT NULL default '{}',
|
|
120
124
|
heartbeat_seconds int,
|
|
121
125
|
notify bool NOT NULL DEFAULT false,
|
|
122
126
|
singletons_active text[],
|
|
@@ -165,7 +169,10 @@ function createTableBam(schema) {
|
|
|
165
169
|
table_name text NOT NULL,
|
|
166
170
|
command text NOT NULL,
|
|
167
171
|
error text,
|
|
168
|
-
|
|
172
|
+
-- clock_timestamp() (not now()) so multiple job_table_run_async() enqueues within a single
|
|
173
|
+
-- migration transaction keep their insertion order — BAM applies queued commands in created_on
|
|
174
|
+
-- order, and some migrations enqueue an ordered drop-then-rebuild pair (see migration v33).
|
|
175
|
+
created_on timestamp with time zone NOT NULL DEFAULT clock_timestamp(),
|
|
169
176
|
started_on timestamp with time zone,
|
|
170
177
|
completed_on timestamp with time zone
|
|
171
178
|
)
|
|
@@ -845,6 +852,233 @@ export function deleteOldWarnings(schema, days) {
|
|
|
845
852
|
WHERE created_on < now() - interval '${days} days'
|
|
846
853
|
`;
|
|
847
854
|
}
|
|
855
|
+
export function createTableQueueStats(schema, noPartitioning = false) {
|
|
856
|
+
if (noPartitioning) {
|
|
857
|
+
return `
|
|
858
|
+
CREATE TABLE ${schema}.queue_stats (
|
|
859
|
+
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
860
|
+
name text NOT NULL,
|
|
861
|
+
deferred_count int NOT NULL DEFAULT 0,
|
|
862
|
+
queued_count int NOT NULL DEFAULT 0,
|
|
863
|
+
ready_count int NOT NULL DEFAULT 0,
|
|
864
|
+
active_count int NOT NULL DEFAULT 0,
|
|
865
|
+
failed_count int NOT NULL DEFAULT 0,
|
|
866
|
+
total_count int NOT NULL DEFAULT 0,
|
|
867
|
+
captured_on timestamptz NOT NULL DEFAULT now(),
|
|
868
|
+
PRIMARY KEY (id)
|
|
869
|
+
)
|
|
870
|
+
`;
|
|
871
|
+
}
|
|
872
|
+
return `
|
|
873
|
+
CREATE TABLE ${schema}.queue_stats (
|
|
874
|
+
id uuid NOT NULL DEFAULT gen_random_uuid(),
|
|
875
|
+
name text NOT NULL,
|
|
876
|
+
deferred_count int NOT NULL DEFAULT 0,
|
|
877
|
+
queued_count int NOT NULL DEFAULT 0,
|
|
878
|
+
ready_count int NOT NULL DEFAULT 0,
|
|
879
|
+
active_count int NOT NULL DEFAULT 0,
|
|
880
|
+
failed_count int NOT NULL DEFAULT 0,
|
|
881
|
+
total_count int NOT NULL DEFAULT 0,
|
|
882
|
+
captured_on timestamptz NOT NULL DEFAULT now(),
|
|
883
|
+
PRIMARY KEY (id, captured_on)
|
|
884
|
+
) PARTITION BY RANGE (captured_on)
|
|
885
|
+
`;
|
|
886
|
+
}
|
|
887
|
+
// queue_stats_i1 serves both the raw history query and the bucketed aggregates: the filter
|
|
888
|
+
// (name = ?, captured_on range) rides the composite key, and the six count columns are carried as
|
|
889
|
+
// covering payload so those reads run index-only (no per-row heap fetch — the dominant cost when an
|
|
890
|
+
// aggregate scans many rows). INCLUDE is gated on the noCoveringIndexes profile flag, which
|
|
891
|
+
// CockroachDB sets (it uses STORING, not INCLUDE) but YugabyteDB does not (it supports INCLUDE):
|
|
892
|
+
// the gated backends keep the plain composite index — correct, just not covering.
|
|
893
|
+
export function createIndexQueueStats(schema, noCoveringIndex = false) {
|
|
894
|
+
const cols = '(name, captured_on DESC)';
|
|
895
|
+
const include = 'INCLUDE (deferred_count, queued_count, ready_count, active_count, failed_count, total_count)';
|
|
896
|
+
return noCoveringIndex
|
|
897
|
+
? `CREATE INDEX queue_stats_i1 ON ${schema}.queue_stats ${cols}`
|
|
898
|
+
: `CREATE INDEX queue_stats_i1 ON ${schema}.queue_stats ${cols} ${include}`;
|
|
899
|
+
}
|
|
900
|
+
// Idempotently create the daily partitions for today and tomorrow (UTC). Both the day suffix and
|
|
901
|
+
// the range bounds are derived in SQL from the UTC calendar date, and the bounds are emitted as
|
|
902
|
+
// explicit `+00` timestamptz literals. This keeps partitioning correct regardless of the database
|
|
903
|
+
// session TimeZone (a bare date literal like '2026-06-25' would otherwise be cast to timestamptz in
|
|
904
|
+
// the session TZ, so rows written near UTC midnight could fall outside every existing partition).
|
|
905
|
+
// Computing the date in SQL (rather than interpolating new Date()) also keeps emitted DDL — including
|
|
906
|
+
// the v35 migration and exported create plans — deterministic and apply-time accurate.
|
|
907
|
+
export function ensureQueueStatsPartitions(schema) {
|
|
908
|
+
return `
|
|
909
|
+
DO $$
|
|
910
|
+
DECLARE
|
|
911
|
+
d date;
|
|
912
|
+
i int;
|
|
913
|
+
part_name text;
|
|
914
|
+
BEGIN
|
|
915
|
+
FOR i IN 0..1 LOOP
|
|
916
|
+
d := (now() AT TIME ZONE 'UTC')::date + i;
|
|
917
|
+
part_name := 'queue_stats_' || to_char(d, 'YYYYMMDD');
|
|
918
|
+
IF NOT EXISTS (
|
|
919
|
+
SELECT 1 FROM pg_class c
|
|
920
|
+
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
921
|
+
WHERE n.nspname = '${schema}' AND c.relname = part_name
|
|
922
|
+
) THEN
|
|
923
|
+
EXECUTE format(
|
|
924
|
+
'CREATE TABLE ${schema}.%I PARTITION OF ${schema}.queue_stats FOR VALUES FROM (%L) TO (%L)',
|
|
925
|
+
part_name,
|
|
926
|
+
to_char(d, 'YYYY-MM-DD') || ' 00:00:00+00',
|
|
927
|
+
to_char(d + 1, 'YYYY-MM-DD') || ' 00:00:00+00'
|
|
928
|
+
);
|
|
929
|
+
END IF;
|
|
930
|
+
END LOOP;
|
|
931
|
+
END;
|
|
932
|
+
$$
|
|
933
|
+
`;
|
|
934
|
+
}
|
|
935
|
+
export function dropOldQueueStatsPartitions(schema, days) {
|
|
936
|
+
return `
|
|
937
|
+
DO $$
|
|
938
|
+
DECLARE
|
|
939
|
+
r record;
|
|
940
|
+
cutoff date := (now() AT TIME ZONE 'UTC')::date - ${days};
|
|
941
|
+
suffix text;
|
|
942
|
+
part_date date;
|
|
943
|
+
BEGIN
|
|
944
|
+
FOR r IN
|
|
945
|
+
SELECT c.relname
|
|
946
|
+
FROM pg_inherits i
|
|
947
|
+
JOIN pg_class p ON p.oid = i.inhparent
|
|
948
|
+
JOIN pg_class c ON c.oid = i.inhrelid
|
|
949
|
+
JOIN pg_namespace n ON n.oid = p.relnamespace
|
|
950
|
+
WHERE n.nspname = '${schema}' AND p.relname = 'queue_stats'
|
|
951
|
+
LOOP
|
|
952
|
+
suffix := substring(r.relname FROM 'queue_stats_(.*)$');
|
|
953
|
+
IF suffix ~ '^[0-9]{8}$' THEN
|
|
954
|
+
part_date := to_date(suffix, 'YYYYMMDD');
|
|
955
|
+
IF part_date < cutoff THEN
|
|
956
|
+
EXECUTE 'DROP TABLE IF EXISTS ${schema}.' || quote_ident(r.relname);
|
|
957
|
+
END IF;
|
|
958
|
+
END IF;
|
|
959
|
+
END LOOP;
|
|
960
|
+
END;
|
|
961
|
+
$$
|
|
962
|
+
`;
|
|
963
|
+
}
|
|
964
|
+
export function deleteOldQueueStats(schema, days) {
|
|
965
|
+
return `
|
|
966
|
+
DELETE FROM ${schema}.queue_stats
|
|
967
|
+
WHERE captured_on < now() - interval '${days} days'
|
|
968
|
+
`;
|
|
969
|
+
}
|
|
970
|
+
export function insertQueueStats(schema, queues, noAdvisoryLocks) {
|
|
971
|
+
const sql = `
|
|
972
|
+
INSERT INTO ${schema}.queue_stats
|
|
973
|
+
(name, deferred_count, queued_count, ready_count, active_count, failed_count, total_count)
|
|
974
|
+
SELECT name, deferred_count, queued_count, ready_count, active_count, failed_count, total_count
|
|
975
|
+
FROM ${schema}.queue
|
|
976
|
+
WHERE name = ANY(${serializeArrayParam(queues)})
|
|
977
|
+
`;
|
|
978
|
+
return locked(schema, sql, 'queue-stats-insert', noAdvisoryLocks);
|
|
979
|
+
}
|
|
980
|
+
// Cheap single-row read of the cached counts the monitor maintains on the queue table. capturedOn
|
|
981
|
+
// is monitor_on — the moment those counts were last refreshed, or NULL if the queue has never been
|
|
982
|
+
// monitored (so the caller knows to recompute rather than trust default-zero counts).
|
|
983
|
+
export function getQueueStatsCache(schema) {
|
|
984
|
+
return `
|
|
985
|
+
SELECT
|
|
986
|
+
name,
|
|
987
|
+
deferred_count as "deferredCount",
|
|
988
|
+
queued_count as "queuedCount",
|
|
989
|
+
ready_count as "readyCount",
|
|
990
|
+
active_count as "activeCount",
|
|
991
|
+
failed_count as "failedCount",
|
|
992
|
+
total_count as "totalCount",
|
|
993
|
+
table_name as "table",
|
|
994
|
+
monitor_on as "capturedOn"
|
|
995
|
+
FROM ${schema}.queue
|
|
996
|
+
WHERE name = $1
|
|
997
|
+
`;
|
|
998
|
+
}
|
|
999
|
+
export function getQueueStatsHistory(schema) {
|
|
1000
|
+
return `
|
|
1001
|
+
SELECT
|
|
1002
|
+
name,
|
|
1003
|
+
deferred_count as "deferredCount",
|
|
1004
|
+
queued_count as "queuedCount",
|
|
1005
|
+
ready_count as "readyCount",
|
|
1006
|
+
active_count as "activeCount",
|
|
1007
|
+
failed_count as "failedCount",
|
|
1008
|
+
total_count as "totalCount",
|
|
1009
|
+
captured_on as "capturedOn"
|
|
1010
|
+
FROM ${schema}.queue_stats
|
|
1011
|
+
WHERE name = $1
|
|
1012
|
+
AND ($2::timestamptz IS NULL OR captured_on >= $2)
|
|
1013
|
+
AND ($3::timestamptz IS NULL OR captured_on <= $3)
|
|
1014
|
+
ORDER BY captured_on DESC
|
|
1015
|
+
LIMIT $4
|
|
1016
|
+
`;
|
|
1017
|
+
}
|
|
1018
|
+
// Per-bucket aggregate over a count column. The function name can't be a bind parameter, so it's
|
|
1019
|
+
// interpolated — safe because the manager validates `aggregate` against this whitelist first. Every
|
|
1020
|
+
// result is cast back to int: it honors the int count contract (avg rounds) and keeps Postgres
|
|
1021
|
+
// returning the value as a JS number rather than a numeric string.
|
|
1022
|
+
const STATS_AGG = {
|
|
1023
|
+
max: (c) => `max(${c})::int`,
|
|
1024
|
+
min: (c) => `min(${c})::int`,
|
|
1025
|
+
avg: (c) => `round(avg(${c}))::int`
|
|
1026
|
+
};
|
|
1027
|
+
// Downsampled history: group the recorded series into fixed-width time buckets and collapse each
|
|
1028
|
+
// bucket's counts with `aggregate`, so a wide window returns a manageable, representative sample
|
|
1029
|
+
// instead of just the newest `limit` raw rows.
|
|
1030
|
+
//
|
|
1031
|
+
// mode 'bucket' — $5 is the bucket width in seconds (explicit resolution).
|
|
1032
|
+
// mode 'auto' — $5 is maxDataPoints; the width is derived so the series fits in $5 points.
|
|
1033
|
+
// from/to sets the range, but they cannot exceed the data's own min/max values.
|
|
1034
|
+
//
|
|
1035
|
+
// The bucket key avoids date_bin() (PG14+): pg-boss supports PostgreSQL 13+ and CockroachDB/
|
|
1036
|
+
// YugabyteDB, none of which can rely on it. to_timestamp / extract(epoch) / floor exist on all of
|
|
1037
|
+
// them (extract returns double on PG13, numeric on PG14+; floor/division handle both identically),
|
|
1038
|
+
// and buckets align to the Unix epoch so their boundaries are stable across calls.
|
|
1039
|
+
export function getQueueStatsHistoryBucketed(schema, aggregate, mode) {
|
|
1040
|
+
const agg = STATS_AGG[aggregate];
|
|
1041
|
+
const widthCte = mode === 'auto'
|
|
1042
|
+
? `WITH extent AS (
|
|
1043
|
+
SELECT min(captured_on) AS lo, max(captured_on) AS hi
|
|
1044
|
+
FROM ${schema}.queue_stats
|
|
1045
|
+
WHERE name = $1
|
|
1046
|
+
),
|
|
1047
|
+
bounds AS (
|
|
1048
|
+
SELECT
|
|
1049
|
+
greatest(coalesce($2::timestamptz, lo), lo) AS lo,
|
|
1050
|
+
least(coalesce($3::timestamptz, hi), hi) AS hi
|
|
1051
|
+
FROM extent
|
|
1052
|
+
),
|
|
1053
|
+
w AS (
|
|
1054
|
+
SELECT greatest(1, ceil(extract(epoch from (hi - lo)) / greatest($5, 1))::bigint)::bigint AS secs
|
|
1055
|
+
FROM bounds
|
|
1056
|
+
)`
|
|
1057
|
+
: 'WITH w AS (SELECT greatest($5, 1)::bigint AS secs)';
|
|
1058
|
+
// Hard-cap auto-mode at maxDataPoints. Epoch-aligned bucketing can straddle a boundary and emit
|
|
1059
|
+
// one bucket more than the target, so cap the row count at the smaller of the user's limit and
|
|
1060
|
+
// maxDataPoints. ORDER BY DESC means the cap drops the oldest (straddle) bucket and keeps the
|
|
1061
|
+
// newest N. Explicit bucketSeconds has no target to overshoot, so it keeps the raw limit.
|
|
1062
|
+
const limit = mode === 'auto' ? 'least($4, $5)' : '$4';
|
|
1063
|
+
return `
|
|
1064
|
+
${widthCte}
|
|
1065
|
+
SELECT
|
|
1066
|
+
to_timestamp(floor(extract(epoch from captured_on) / w.secs) * w.secs) as "capturedOn",
|
|
1067
|
+
${agg('deferred_count')} as "deferredCount",
|
|
1068
|
+
${agg('queued_count')} as "queuedCount",
|
|
1069
|
+
${agg('ready_count')} as "readyCount",
|
|
1070
|
+
${agg('active_count')} as "activeCount",
|
|
1071
|
+
${agg('failed_count')} as "failedCount",
|
|
1072
|
+
${agg('total_count')} as "totalCount"
|
|
1073
|
+
FROM ${schema}.queue_stats, w
|
|
1074
|
+
WHERE name = $1
|
|
1075
|
+
AND ($2::timestamptz IS NULL OR captured_on >= $2)
|
|
1076
|
+
AND ($3::timestamptz IS NULL OR captured_on <= $3)
|
|
1077
|
+
GROUP BY 1
|
|
1078
|
+
ORDER BY 1 DESC
|
|
1079
|
+
LIMIT ${limit}
|
|
1080
|
+
`;
|
|
1081
|
+
}
|
|
848
1082
|
export function getVersion(schema) {
|
|
849
1083
|
return `SELECT version from ${schema}.version`;
|
|
850
1084
|
}
|
|
@@ -1817,6 +2051,11 @@ export function getQueueStats(schema, table, queues) {
|
|
|
1817
2051
|
values: [queues]
|
|
1818
2052
|
};
|
|
1819
2053
|
}
|
|
2054
|
+
// Length of the recent-ready-count sliding window kept on queue.ready_history for the dashboard
|
|
2055
|
+
// sparkline. One sample is appended per monitor cycle (default 60s), so this is roughly the last
|
|
2056
|
+
// READY_HISTORY_SIZE minutes of trend. Sized to comfortably render the sparkline (the widest is the
|
|
2057
|
+
// ~160px detail card) without over-collecting — more points than pixels add nothing visible.
|
|
2058
|
+
export const READY_HISTORY_SIZE = 60;
|
|
1820
2059
|
export function cacheQueueStats(schema, table, queues, noAdvisoryLocks) {
|
|
1821
2060
|
const statsQuery = getQueueStats(schema, table, queues);
|
|
1822
2061
|
// Serialize the $1 parameter for use in locked() multi-statement query
|
|
@@ -1830,7 +2069,24 @@ export function cacheQueueStats(schema, table, queues, noAdvisoryLocks) {
|
|
|
1830
2069
|
active_count = COALESCE(stats."activeCount", 0),
|
|
1831
2070
|
failed_count = COALESCE(stats."failedCount", 0),
|
|
1832
2071
|
total_count = COALESCE(stats."totalCount", 0),
|
|
1833
|
-
singletons_active = stats."singletonsActive"
|
|
2072
|
+
singletons_active = stats."singletonsActive",
|
|
2073
|
+
-- Always-on sliding window of recent ready counts for the dashboard sparkline (independent of
|
|
2074
|
+
-- persistQueueStats). Prepend the newest sample and keep the newest READY_HISTORY_SIZE, stored
|
|
2075
|
+
-- newest-first. Built with unnest + array_agg (not array slicing, which CockroachDB lacks).
|
|
2076
|
+
ready_history = (
|
|
2077
|
+
SELECT COALESCE(array_agg(v ORDER BY ord), '{}'::int[])
|
|
2078
|
+
FROM (
|
|
2079
|
+
SELECT v, ord
|
|
2080
|
+
FROM (
|
|
2081
|
+
SELECT COALESCE(stats."readyCount", 0)::int AS v, 0::bigint AS ord
|
|
2082
|
+
UNION ALL
|
|
2083
|
+
SELECT h.v, h.ord
|
|
2084
|
+
FROM unnest(COALESCE(queue.ready_history, '{}'::int[])) WITH ORDINALITY AS h(v, ord)
|
|
2085
|
+
) merged
|
|
2086
|
+
ORDER BY ord
|
|
2087
|
+
LIMIT ${READY_HISTORY_SIZE}
|
|
2088
|
+
) capped
|
|
2089
|
+
)
|
|
1834
2090
|
FROM (
|
|
1835
2091
|
SELECT q.name
|
|
1836
2092
|
FROM unnest(${serializeArrayParam(queues)}) AS q(name)
|
|
@@ -1844,6 +2100,42 @@ export function cacheQueueStats(schema, table, queues, noAdvisoryLocks) {
|
|
|
1844
2100
|
`;
|
|
1845
2101
|
return locked(schema, sql, 'queue-stats', noAdvisoryLocks);
|
|
1846
2102
|
}
|
|
2103
|
+
// Recompute one queue's counts from the job table and write them back to the queue-table cache
|
|
2104
|
+
// (including monitor_on, so subsequent reads are served from cache), returning the fresh counts.
|
|
2105
|
+
// Backs getQueueStats(name, { force: true }) and the first read of a never-monitored queue. A single
|
|
2106
|
+
// atomic UPDATE ... RETURNING — no advisory lock needed since concurrent forced refreshes are
|
|
2107
|
+
// idempotent (each is a valid point-in-time snapshot; last write wins).
|
|
2108
|
+
export function refreshQueueStats(schema, table, name) {
|
|
2109
|
+
const statsQuery = getQueueStats(schema, table, [name]);
|
|
2110
|
+
const statsText = statsQuery.text.replace('$1::text[]', serializeArrayParam([name]));
|
|
2111
|
+
return `
|
|
2112
|
+
WITH stats AS (${statsText})
|
|
2113
|
+
UPDATE ${schema}.queue SET
|
|
2114
|
+
deferred_count = COALESCE(stats."deferredCount", 0),
|
|
2115
|
+
queued_count = COALESCE(stats."queuedCount", 0),
|
|
2116
|
+
ready_count = COALESCE(stats."readyCount", 0),
|
|
2117
|
+
active_count = COALESCE(stats."activeCount", 0),
|
|
2118
|
+
failed_count = COALESCE(stats."failedCount", 0),
|
|
2119
|
+
total_count = COALESCE(stats."totalCount", 0),
|
|
2120
|
+
singletons_active = stats."singletonsActive",
|
|
2121
|
+
monitor_on = now()
|
|
2122
|
+
FROM (
|
|
2123
|
+
SELECT q.name
|
|
2124
|
+
FROM unnest(${serializeArrayParam([name])}) AS q(name)
|
|
2125
|
+
) q
|
|
2126
|
+
LEFT JOIN stats ON stats.name = q.name
|
|
2127
|
+
WHERE queue.name = q.name
|
|
2128
|
+
RETURNING
|
|
2129
|
+
queue.name,
|
|
2130
|
+
queue.deferred_count as "deferredCount",
|
|
2131
|
+
queue.queued_count as "queuedCount",
|
|
2132
|
+
queue.ready_count as "readyCount",
|
|
2133
|
+
queue.active_count as "activeCount",
|
|
2134
|
+
queue.failed_count as "failedCount",
|
|
2135
|
+
queue.total_count as "totalCount",
|
|
2136
|
+
queue.monitor_on as "capturedOn"
|
|
2137
|
+
`;
|
|
2138
|
+
}
|
|
1847
2139
|
// Serialize a string array for embedding directly in SQL as PostgreSQL array literal
|
|
1848
2140
|
export function serializeArrayParam(values) {
|
|
1849
2141
|
const escaped = values.map(v => `'${v.replace(SINGLE_QUOTE_REGEX, "''")}'`);
|
|
@@ -1973,7 +2265,10 @@ export function getNextBamCommand(schema) {
|
|
|
1973
2265
|
SELECT id FROM ${schema}.bam
|
|
1974
2266
|
WHERE status IN ('pending', 'failed')
|
|
1975
2267
|
AND NOT EXISTS (SELECT 1 FROM ${schema}.bam WHERE status = 'in_progress')
|
|
1976
|
-
|
|
2268
|
+
-- Process all 'pending' commands (oldest first) before retrying any 'failed' one, so a
|
|
2269
|
+
-- permanently-failing command can't sit at the head of the queue and starve everything behind
|
|
2270
|
+
-- it (head-of-line blocking). Within a status, created_on preserves enqueue order.
|
|
2271
|
+
ORDER BY (status = 'failed'), created_on
|
|
1977
2272
|
LIMIT 1
|
|
1978
2273
|
)
|
|
1979
2274
|
RETURNING id, name, version, status, queue, table_name as "table", command, error,
|
package/dist/types.d.ts
CHANGED
|
@@ -79,9 +79,59 @@ export interface MaintenanceOptions {
|
|
|
79
79
|
monitorIntervalSeconds?: number;
|
|
80
80
|
persistWarnings?: boolean;
|
|
81
81
|
warningRetentionDays?: number;
|
|
82
|
+
persistQueueStats?: boolean;
|
|
83
|
+
queueStatRetentionDays?: number;
|
|
82
84
|
bamIntervalSeconds?: number;
|
|
83
85
|
flowIntervalSeconds?: number;
|
|
84
86
|
}
|
|
87
|
+
export interface QueueStats {
|
|
88
|
+
name: string;
|
|
89
|
+
deferredCount: number;
|
|
90
|
+
queuedCount: number;
|
|
91
|
+
readyCount: number;
|
|
92
|
+
activeCount: number;
|
|
93
|
+
failedCount: number;
|
|
94
|
+
totalCount: number;
|
|
95
|
+
capturedOn: Date;
|
|
96
|
+
}
|
|
97
|
+
export interface QueueStatsOptions {
|
|
98
|
+
/** persistQueueStats on: only return snapshots captured at or after this time. */
|
|
99
|
+
from?: Date;
|
|
100
|
+
/** persistQueueStats on: only return snapshots captured at or before this time. */
|
|
101
|
+
to?: Date;
|
|
102
|
+
/** persistQueueStats on: maximum number of snapshots to return (1–100000, default 1000). */
|
|
103
|
+
limit?: number;
|
|
104
|
+
/**
|
|
105
|
+
* persistQueueStats on: downsample the recorded series into fixed-width time buckets this many
|
|
106
|
+
* seconds wide, returning one aggregated snapshot per bucket instead of raw rows. Each bucket
|
|
107
|
+
* collapses its count columns via {@link aggregate}. Buckets align to the Unix epoch, so their
|
|
108
|
+
* boundaries are deterministic and stable across calls. Must be a positive integer. Omitted →
|
|
109
|
+
* raw snapshots (current behavior). Size it so the bucket count stays within `limit`, otherwise
|
|
110
|
+
* only the newest `limit` buckets are returned and the oldest part of the window is dropped.
|
|
111
|
+
*/
|
|
112
|
+
bucketSeconds?: number;
|
|
113
|
+
/**
|
|
114
|
+
* persistQueueStats on: auto-downsample. Derive {@link bucketSeconds} so the series fits in
|
|
115
|
+
* roughly this many points — e.g. a chart's pixel width. Must be a positive integer. The window
|
|
116
|
+
* spanned is `from`/`to` when supplied (so an explicit x-axis range yields stable buckets even
|
|
117
|
+
* with sparse data), falling back to the data's own `min`/`max` captured timestamps for any
|
|
118
|
+
* open side. Ignored when `bucketSeconds` is set (explicit resolution wins).
|
|
119
|
+
*/
|
|
120
|
+
maxDataPoints?: number;
|
|
121
|
+
/**
|
|
122
|
+
* persistQueueStats on: how each count column is collapsed within a bucket when `bucketSeconds`
|
|
123
|
+
* or `maxDataPoints` is set. `'max'` surfaces peak depth (best for backlog alerting), `'min'`
|
|
124
|
+
* the trough, `'avg'` the rounded mean. Ignored when neither bucket option is set.
|
|
125
|
+
* @default 'max'
|
|
126
|
+
*/
|
|
127
|
+
aggregate?: 'max' | 'min' | 'avg';
|
|
128
|
+
/**
|
|
129
|
+
* persistQueueStats off: return a fresh reading. Recomputes the counts from the job table and
|
|
130
|
+
* refreshes the queue-table cache rather than serving the regular (up to ~1h) cache, but still
|
|
131
|
+
* reuses anything computed in the last minute so repeated forced calls don't each re-aggregate.
|
|
132
|
+
*/
|
|
133
|
+
force?: boolean;
|
|
134
|
+
}
|
|
85
135
|
/**
|
|
86
136
|
* Options for running pg-boss against a specific database backend.
|
|
87
137
|
*
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pg-boss",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.24.1",
|
|
4
4
|
"description": "Queueing jobs in Postgres from Node.js like a boss",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -51,17 +51,19 @@
|
|
|
51
51
|
"test:cockroachdb:full": "cross-env DB_TYPE=cockroachdb COCKROACH_HOST=localhost npm test -- --no-file-parallelism",
|
|
52
52
|
"test:yugabytedb:full": "cross-env DB_TYPE=yugabytedb YUGABYTE_HOST=localhost npm test -- --no-file-parallelism",
|
|
53
53
|
"test:citus:full": "cross-env DB_TYPE=citus CITUS_HOST=localhost npm test",
|
|
54
|
-
"test:pglite": "cross-env DB_TYPE=pglite npm test
|
|
54
|
+
"test:pglite": "cross-env DB_TYPE=pglite npm test",
|
|
55
55
|
"lint:fix": "eslint . --fix",
|
|
56
56
|
"cover": "npm test -- --coverage",
|
|
57
57
|
"tsc": "tsc --noEmit",
|
|
58
58
|
"cli": "node ./dist/cli.js",
|
|
59
|
+
"console": "tsx scripts/console.js",
|
|
60
|
+
"seed": "tsx scripts/seed-queue-stats.js",
|
|
59
61
|
"readme": "node ./examples/readme.js",
|
|
60
62
|
"docs": "npm run docs:dev --prefix docs",
|
|
61
63
|
"docs:readme": "node ./scripts/sync-readme.js"
|
|
62
64
|
},
|
|
63
65
|
"pgboss": {
|
|
64
|
-
"schema":
|
|
66
|
+
"schema": 36
|
|
65
67
|
},
|
|
66
68
|
"repository": {
|
|
67
69
|
"type": "git",
|