velocious 1.0.588 → 1.0.589
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 +1 -1
- package/build/background-jobs/main.js +6 -0
- package/build/background-jobs/store.js +55 -14
- package/build/environment-handlers/node.js +5 -6
- package/build/src/background-jobs/main.d.ts.map +1 -1
- package/build/src/background-jobs/main.js +7 -1
- package/build/src/background-jobs/store.d.ts +31 -10
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +53 -14
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +6 -7
- package/package.json +1 -1
- package/scripts/verify-docker-dev-environment.js +22 -8
- package/src/background-jobs/main.js +6 -0
- package/src/background-jobs/store.js +55 -14
- package/src/environment-handlers/node.js +5 -6
package/README.md
CHANGED
|
@@ -2470,7 +2470,7 @@ backgroundJobs: {
|
|
|
2470
2470
|
}
|
|
2471
2471
|
```
|
|
2472
2472
|
|
|
2473
|
-
A job with no queue runs on `"default"`; a queue with no cap is unlimited. Caps are enforced through the durable per-key concurrency mechanism (the reserved `queue:<name>` key)
|
|
2473
|
+
A job with no queue runs on `"default"`; a queue with no cap is unlimited. Caps are enforced through the durable per-key concurrency mechanism (the reserved `queue:<name>` key) and hold regardless of how many worker processes run. Changing a cap is reconciled against the existing backlog only when `background-jobs-main` starts (serialized across processes with a database advisory lock); `db:migrate`, `db:tenants:*`, and routine store/application initialization never reconcile the backlog and stay read-only regarding queued jobs. Scheduled jobs honor a job's `static queue` too.
|
|
2474
2474
|
|
|
2475
2475
|
Set `priority` (default `0`) to dispatch a queue ahead of lower-priority ones regardless of enqueue order, so a small time-critical queue is never starved by a flood of low-priority work sharing a worker pool. Unlike Sidekiq's strict queue ordering, priority composes with the caps: a higher-priority queue already at its `maxConcurrent` is skipped and dispatch falls through to the next eligible job. See [docs/background-jobs.md](docs/background-jobs.md#queues-per-queue-concurrency-caps).
|
|
2476
2476
|
|
|
@@ -155,6 +155,12 @@ export default class BackgroundJobsMain {
|
|
|
155
155
|
await this.configuration.initialize({type: "background-jobs-main"})
|
|
156
156
|
await this.configuration.connectBeacon({peerType: "background-jobs-main"})
|
|
157
157
|
await this.store.ensureReady()
|
|
158
|
+
// Queue-cap changes are reconciled against the persisted backlog here, at
|
|
159
|
+
// main-process startup — the explicit lifecycle for applying queue
|
|
160
|
+
// configuration changes. The store serializes the adoption/release UPDATEs
|
|
161
|
+
// across processes with a database advisory lock, so concurrently started
|
|
162
|
+
// mains cannot interleave them.
|
|
163
|
+
await this.store.reconcileQueueConcurrency()
|
|
158
164
|
const server = net.createServer((socket) => this._handleConnection(socket))
|
|
159
165
|
this.server = server
|
|
160
166
|
|
|
@@ -158,6 +158,45 @@ export default class BackgroundJobsStore {
|
|
|
158
158
|
await this._ensureSchema(db)
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
/**
|
|
162
|
+
* Reconciles queue-derived concurrency with the current configuration: the
|
|
163
|
+
* explicit lifecycle path that adopts/releases persisted queued jobs onto
|
|
164
|
+
* queue concurrency keys when `queues[name].maxConcurrent` is added, removed,
|
|
165
|
+
* or changed. Called by the background-jobs main process on startup — the
|
|
166
|
+
* deploy-time moment queue configuration changes take effect. Schema/tenant
|
|
167
|
+
* checks and routine connection initialization deliberately never run this:
|
|
168
|
+
* they stay read-only regarding queued job rows, because the broad
|
|
169
|
+
* adoption/release UPDATEs deadlock against active job processes under
|
|
170
|
+
* concurrent tenant initialization. Serialized across processes with a
|
|
171
|
+
* database advisory lock so concurrently started mains cannot interleave the
|
|
172
|
+
* UPDATEs; the per-instance memo only skips repeat work within this process.
|
|
173
|
+
* @returns {Promise<void>} - Resolves when reconciled.
|
|
174
|
+
*/
|
|
175
|
+
async reconcileQueueConcurrency() {
|
|
176
|
+
if (this._queueConcurrencyReconciled) return
|
|
177
|
+
|
|
178
|
+
await this.ensureReady()
|
|
179
|
+
|
|
180
|
+
await this._withDb(async (db) => {
|
|
181
|
+
const lockName = "background-jobs:queue-concurrency-reconcile"
|
|
182
|
+
const acquired = await db.acquireAdvisoryLock(lockName)
|
|
183
|
+
|
|
184
|
+
if (!acquired) throw new Error("Failed to acquire background job queue-concurrency reconcile lock")
|
|
185
|
+
|
|
186
|
+
try {
|
|
187
|
+
await this._reconcileQueueConcurrency(db)
|
|
188
|
+
await this._reconcileConcurrency(db)
|
|
189
|
+
|
|
190
|
+
// Latch the memo only after BOTH steps succeed: if the count rebuild
|
|
191
|
+
// fails after adoption, a retry on this store must re-enter and repair
|
|
192
|
+
// the counts (adoption itself is idempotent).
|
|
193
|
+
this._queueConcurrencyReconciled = true
|
|
194
|
+
} finally {
|
|
195
|
+
await db.releaseAdvisoryLock(lockName)
|
|
196
|
+
}
|
|
197
|
+
})
|
|
198
|
+
}
|
|
199
|
+
|
|
161
200
|
/**
|
|
162
201
|
* Runs enqueue.
|
|
163
202
|
* @param {object} args - Options.
|
|
@@ -1119,7 +1158,6 @@ export default class BackgroundJobsStore {
|
|
|
1119
1158
|
await this._ensureScheduleKeysTable(db)
|
|
1120
1159
|
await this._ensureConcurrencyTable(db)
|
|
1121
1160
|
await this._ensureCountRevisionTable(db)
|
|
1122
|
-
await this._reconcileQueueConcurrency(db)
|
|
1123
1161
|
await this._reconcileConcurrency(db)
|
|
1124
1162
|
|
|
1125
1163
|
return
|
|
@@ -1130,7 +1168,6 @@ export default class BackgroundJobsStore {
|
|
|
1130
1168
|
await this._ensureScheduleKeysTable(db)
|
|
1131
1169
|
await this._ensureConcurrencyTable(db)
|
|
1132
1170
|
await this._ensureCountRevisionTable(db)
|
|
1133
|
-
await this._reconcileQueueConcurrency(db)
|
|
1134
1171
|
await this._reconcileConcurrency(db)
|
|
1135
1172
|
|
|
1136
1173
|
if (alreadyApplied) return
|
|
@@ -2114,16 +2151,22 @@ export default class BackgroundJobsStore {
|
|
|
2114
2151
|
}
|
|
2115
2152
|
|
|
2116
2153
|
/**
|
|
2117
|
-
* Reconciles queue-derived concurrency with the current configuration
|
|
2118
|
-
*
|
|
2119
|
-
*
|
|
2120
|
-
*
|
|
2121
|
-
* stay
|
|
2122
|
-
*
|
|
2123
|
-
*
|
|
2124
|
-
*
|
|
2125
|
-
*
|
|
2126
|
-
*
|
|
2154
|
+
* Reconciles queue-derived concurrency with the current configuration. Only
|
|
2155
|
+
* invoked through {@link reconcileQueueConcurrency} — the explicit lifecycle
|
|
2156
|
+
* path run at main-process startup under a cross-process advisory lock —
|
|
2157
|
+
* never from schema/tenant checks or routine connection initialization,
|
|
2158
|
+
* which stay read-only regarding queued job rows. The per-process memo is
|
|
2159
|
+
* latched by {@link reconcileQueueConcurrency} only after the following
|
|
2160
|
+
* count rebuild also succeeds, so a failed rebuild re-enters here on retry
|
|
2161
|
+
* (the adoption UPDATEs below are idempotent). Enqueue only consults config for new jobs, so a cap added, removed, or changed
|
|
2162
|
+
* while a backlog exists otherwise leaves persisted rows stale: pre-cap jobs
|
|
2163
|
+
* keep a null key and bypass the cap, post-removal jobs stay capped under a
|
|
2164
|
+
* now-unconfigured key, and a changed numeric cap stays stale until the next
|
|
2165
|
+
* enqueue. Bring the durable state in line with config: sync each configured
|
|
2166
|
+
* queue's stored cap, adopt not-yet-keyed non-terminal jobs onto their queue
|
|
2167
|
+
* key, and release non-terminal jobs from queue keys whose queue is no
|
|
2168
|
+
* longer capped. Runs before {@link _reconcileConcurrency} so the rebuilt
|
|
2169
|
+
* active counts reflect the adopted/released keys.
|
|
2127
2170
|
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
2128
2171
|
* @returns {Promise<void>} - Resolves when reconciled.
|
|
2129
2172
|
*/
|
|
@@ -2168,8 +2211,6 @@ export default class BackgroundJobsStore {
|
|
|
2168
2211
|
`WHERE ${keyColumn} = ${db.quote(concurrencyKey)} AND ${nonTerminal}`
|
|
2169
2212
|
)
|
|
2170
2213
|
}
|
|
2171
|
-
|
|
2172
|
-
this._queueConcurrencyReconciled = true
|
|
2173
2214
|
}
|
|
2174
2215
|
|
|
2175
2216
|
/**
|
|
@@ -1052,12 +1052,11 @@ export default class VelociousEnvironmentHandlerNode extends Base{
|
|
|
1052
1052
|
// `db:tenants:migrate <tenant>`, which migrates only tenant databases — the
|
|
1053
1053
|
// framework store lives elsewhere (typically the default DB) and was already
|
|
1054
1054
|
// ensured by the plain `db:migrate` that precedes it. Reaching into it here would
|
|
1055
|
-
// open a fresh connection to that shared database
|
|
1056
|
-
//
|
|
1057
|
-
//
|
|
1058
|
-
//
|
|
1059
|
-
// (
|
|
1060
|
-
// store still creates it lazily if a plain migrate never ran.
|
|
1055
|
+
// open a fresh connection to that shared database once per tenant worker for
|
|
1056
|
+
// schema work that is already applied. So skip when the framework DB isn't in
|
|
1057
|
+
// this set; the runtime store still creates it lazily if a plain migrate never
|
|
1058
|
+
// ran. Queue-cap reconciliation never runs on this path at all — it belongs to
|
|
1059
|
+
// main-process startup (`BackgroundJobsStore#reconcileQueueConcurrency`).
|
|
1061
1060
|
if (!frameworkDb) return
|
|
1062
1061
|
|
|
1063
1062
|
// Reuse the connection db:migrate already holds for this database; opening a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/main.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/main.js"],"names":[],"mappings":"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"}
|