mongodash 2.6.0 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/dist/lib/ConcurrentRunner.js +32 -2
- package/dist/lib/ConcurrentRunner.js.map +1 -1
- package/dist/lib/createContinuousLock.js +23 -6
- package/dist/lib/createContinuousLock.js.map +1 -1
- package/dist/lib/cronTasks.js +158 -19
- package/dist/lib/cronTasks.js.map +1 -1
- package/dist/lib/index.js +10 -6
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/reactiveTasks/LeaderElector.js +21 -3
- package/dist/lib/reactiveTasks/LeaderElector.js.map +1 -1
- package/dist/lib/reactiveTasks/MetricsCollector.js +31 -5
- package/dist/lib/reactiveTasks/MetricsCollector.js.map +1 -1
- package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js +66 -31
- package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js.map +1 -1
- package/dist/lib/reactiveTasks/ReactiveTaskRepository.js +19 -1
- package/dist/lib/reactiveTasks/ReactiveTaskRepository.js.map +1 -1
- package/dist/lib/reactiveTasks/ReactiveTaskTypes.js +7 -1
- package/dist/lib/reactiveTasks/ReactiveTaskTypes.js.map +1 -1
- package/dist/lib/reactiveTasks/ReactiveTaskWorker.js +80 -5
- package/dist/lib/reactiveTasks/ReactiveTaskWorker.js.map +1 -1
- package/dist/lib/reactiveTasks/index.js +19 -12
- package/dist/lib/reactiveTasks/index.js.map +1 -1
- package/dist/lib/testing/assertNoReactiveTaskErrors.js +16 -12
- package/dist/lib/testing/assertNoReactiveTaskErrors.js.map +1 -1
- package/dist/lib/testing/index.js +2 -0
- package/dist/lib/testing/index.js.map +1 -1
- package/dist/lib/testing/resolveWhitelistFilter.js +48 -0
- package/dist/lib/testing/resolveWhitelistFilter.js.map +1 -0
- package/dist/lib/testing/waitUntilReactiveTasksIdle.js +17 -46
- package/dist/lib/testing/waitUntilReactiveTasksIdle.js.map +1 -1
- package/dist/types/ConcurrentRunner.d.ts +14 -0
- package/dist/types/createContinuousLock.d.ts +17 -1
- package/dist/types/cronTasks.d.ts +17 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/reactiveTasks/LeaderElector.d.ts +15 -1
- package/dist/types/reactiveTasks/MetricsCollector.d.ts +8 -0
- package/dist/types/reactiveTasks/ReactiveTaskPlanner.d.ts +11 -0
- package/dist/types/reactiveTasks/ReactiveTaskRepository.d.ts +10 -1
- package/dist/types/reactiveTasks/ReactiveTaskTypes.d.ts +6 -0
- package/dist/types/reactiveTasks/index.d.ts +8 -2
- package/dist/types/testing/assertNoReactiveTaskErrors.d.ts +4 -4
- package/dist/types/testing/index.d.ts +2 -0
- package/dist/types/testing/resolveWhitelistFilter.d.ts +35 -0
- package/dist/types/testing/waitUntilReactiveTasksIdle.d.ts +7 -13
- package/docs/.vitepress/config.mts +9 -1
- package/docs/cron-tasks.md +130 -1
- package/docs/error-handling.md +156 -0
- package/docs/reactive-tasks/guides.md +1 -1
- package/docs/reactive-tasks/index.md +1 -1
- package/docs/reactive-tasks/monitoring.md +7 -0
- package/docs/reactive-tasks/testing.md +187 -0
- package/docs/testing.md +60 -94
- package/package.json +34 -24
- package/docs/.vitepress/cache/deps/_metadata.json +0 -31
- package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +0 -12824
- package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +0 -7
- package/docs/.vitepress/cache/deps/package.json +0 -3
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -9731
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
- package/docs/.vitepress/cache/deps/vue.js +0 -347
- package/docs/.vitepress/cache/deps/vue.js.map +0 -7
package/README.md
CHANGED
|
@@ -185,3 +185,55 @@ app.get('/metrics', async (req, res) => {
|
|
|
185
185
|
res.end(await registry.metrics());
|
|
186
186
|
});
|
|
187
187
|
```
|
|
188
|
+
|
|
189
|
+
<br>
|
|
190
|
+
|
|
191
|
+
## Contributing
|
|
192
|
+
|
|
193
|
+
### Running the test suite locally
|
|
194
|
+
|
|
195
|
+
The test suite talks to a real MongoDB — a replica set is required for
|
|
196
|
+
change-stream-backed features (reactive tasks, transactions). The quickest
|
|
197
|
+
way to get one running is Docker:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
docker run -d --name mongodash-test-mongo -p 27017:27017 \
|
|
201
|
+
mongo:7 --replSet rs0 --bind_ip_all
|
|
202
|
+
|
|
203
|
+
# Wait a moment, then initiate the replica set:
|
|
204
|
+
docker exec mongodash-test-mongo mongosh --quiet --eval \
|
|
205
|
+
"rs.initiate({_id:'rs0',members:[{_id:0,host:'127.0.0.1:27017'}]})"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Then run the suite:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
MONGODB_URI='mongodb://127.0.0.1:27017/mongodashTesting?replicaSet=rs0' \
|
|
212
|
+
npm test
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Override `MONGODB_URI` to point at any replica set you already have.
|
|
216
|
+
|
|
217
|
+
### Useful scripts
|
|
218
|
+
|
|
219
|
+
| Command | What it does |
|
|
220
|
+
| :--- | :--- |
|
|
221
|
+
| `npm test` | Full suite: lint, coverage, export checks. |
|
|
222
|
+
| `npm run test:simple` | Jest only (fastest inner loop). |
|
|
223
|
+
| `npm run test:watch` | Jest watch mode with coverage. |
|
|
224
|
+
| `npm run test:lint` | ESLint. |
|
|
225
|
+
| `npm run test:ts` | Type-check both `src/` and `test/`. |
|
|
226
|
+
| `npm run docs:dev` | Run the VitePress docs on `localhost:5173`. |
|
|
227
|
+
| `npm run test:stryker` | Mutation testing (slow — run before major releases). |
|
|
228
|
+
|
|
229
|
+
### Commit conventions
|
|
230
|
+
|
|
231
|
+
Commit messages follow [Conventional Commits](https://www.conventionalcommits.org/)
|
|
232
|
+
and are validated by a `commit-msg` hook. Prefixes in use: `feat`, `fix`,
|
|
233
|
+
`refactor`, `test`, `docs`, `chore`, `ci`, `perf`, `revert`, `style`,
|
|
234
|
+
`build`, `breaking`.
|
|
235
|
+
|
|
236
|
+
### Reporting issues
|
|
237
|
+
|
|
238
|
+
File issues at https://github.com/VaclavObornik/mongodash/issues. Include
|
|
239
|
+
the Node version, MongoDB server version, and a minimal reproduction.
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ConcurrentRunner = void 0;
|
|
4
|
-
const _debug = require("debug");
|
|
5
4
|
const OnError_1 = require("./OnError");
|
|
6
|
-
|
|
5
|
+
// Note: this file uses require() for the `debug` import on purpose - the
|
|
6
|
+
// rest of the codebase uses `import * as _debug from 'debug'`, but this
|
|
7
|
+
// module is transitively pulled into the dashboard's vue-tsc build (via
|
|
8
|
+
// task-management/types.ts -> cronTasks.ts -> ConcurrentRunner.ts), and
|
|
9
|
+
// vue-tsc runs in stricter ESM mode where the namespace-style import is
|
|
10
|
+
// not callable. require() sidesteps that while keeping runtime identical.
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
12
|
+
const debug = require('debug')('mongodash:ConcurrentRunner');
|
|
7
13
|
class ConcurrentRunner {
|
|
8
14
|
constructor(options, onError = OnError_1.defaultOnError) {
|
|
9
15
|
this.onError = onError;
|
|
@@ -59,6 +65,30 @@ class ConcurrentRunner {
|
|
|
59
65
|
debug(`SpeedUp called for ${sourceName}`);
|
|
60
66
|
}
|
|
61
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Override the back-off schedule so the next poll for `sourceName`
|
|
70
|
+
* happens at approximately `runAt` (a millisecond epoch timestamp).
|
|
71
|
+
* Intended for callers that already know when their next unit of work
|
|
72
|
+
* is due - e.g. cron scheduling an hour out - to skip wasted polls.
|
|
73
|
+
*
|
|
74
|
+
* - `runAt` must be a finite number; non-finite values are ignored.
|
|
75
|
+
* - The timestamp is *not* clamped relative to `now`. Passing a value in
|
|
76
|
+
* the past is valid and behaves like {@link speedUp}; passing a value
|
|
77
|
+
* far in the future means the source will not be polled until then
|
|
78
|
+
* (or until `speedUp` / `setNextRunAt` is called again).
|
|
79
|
+
* - Back-off is reset so a subsequent wake-up fires at `minPollMs`.
|
|
80
|
+
*/
|
|
81
|
+
setNextRunAt(sourceName, runAt) {
|
|
82
|
+
const state = this.sources.get(sourceName);
|
|
83
|
+
if (!state)
|
|
84
|
+
return;
|
|
85
|
+
if (!Number.isFinite(runAt))
|
|
86
|
+
return;
|
|
87
|
+
state.currentBackoff = state.options.minPollMs;
|
|
88
|
+
state.nextRunAt = runAt;
|
|
89
|
+
// Wake workers so any currently-sleeping one can recompute its wait.
|
|
90
|
+
this.wakeUpAllWorkers();
|
|
91
|
+
}
|
|
62
92
|
updateAllSources(options) {
|
|
63
93
|
for (const state of this.sources.values()) {
|
|
64
94
|
state.options = Object.assign(Object.assign({}, state.options), options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConcurrentRunner.js","sourceRoot":"","sources":["../../src/ConcurrentRunner.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ConcurrentRunner.js","sourceRoot":"","sources":["../../src/ConcurrentRunner.ts"],"names":[],"mappings":";;;AAAA,uCAAoD;AAEpD,yEAAyE;AACzE,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE,wEAAwE;AACxE,0EAA0E;AAC1E,iEAAiE;AACjE,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,4BAA4B,CAAiC,CAAC;AAqB7F,MAAa,gBAAgB;IASzB,YACI,OAAgC,EACxB,UAAmB,wBAAc;QAAjC,YAAO,GAAP,OAAO,CAA0B;QATrC,YAAO,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC9C,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAoB,EAAE,CAAC;QAC9B,kBAAa,GAAmB,EAAE,CAAC;QACnC,gBAAW,GAA+B,IAAI,CAAC;QAC/C,uBAAkB,GAAG,CAAC,CAAC;QAM3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEM,cAAc,CAAC,IAAY,EAAE,OAAsB;QACtD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,yBAAyB,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;YACnB,IAAI;YACJ,OAAO;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,cAAc,EAAE,OAAO,CAAC,SAAS;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAEM,SAAS,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,WAAgC;QACzC,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;IAC9D,CAAC;IAEM,KAAK,CAAC,IAAI;QACb,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,KAAK,CAAC,SAAS,CAAC,CAAC;IACrB,CAAC;IAEM,OAAO,CAAC,UAAkB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,EAAE,CAAC;YACR,yCAAyC;YACzC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,KAAK,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAC9C,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;OAYG;IACI,YAAY,CAAC,UAAkB,EAAE,KAAa;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO;QACpC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC/C,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,qEAAqE;QACrE,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEM,gBAAgB,CAAC,OAA+B;QACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACxC,KAAK,CAAC,OAAO,mCAAQ,KAAK,CAAC,OAAO,GAAK,OAAO,CAAE,CAAC;YACjD,sFAAsF;YACtF,2CAA2C;YAC3C,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC9E,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;gBAC9E,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;YAC7C,CAAC;QACL,CAAC;QACD,mDAAmD;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,SAAS;QACnB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,UAAU,GAAuB,IAAI,CAAC;YAC1C,IAAI,YAAY,GAAG,QAAQ,CAAC;YAE5B,4CAA4C;YAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,KAAK,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;oBACjC,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC;oBAC/B,UAAU,GAAG,KAAK,CAAC;gBACvB,CAAC;YACL,CAAC;YAED,IAAI,UAAU,IAAI,YAAY,IAAI,GAAG,EAAE,CAAC;gBACpC,2BAA2B;gBAC3B,MAAM,KAAK,GAAG,UAAU,CAAC;gBAEzB,wFAAwF;gBACxF,mFAAmF;gBACnF,+BAA+B;gBAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEhC,IAAI,CAAC;oBACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC1B,MAAM,IAAI,CAAC,WAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,IAAI,CAAC,OAAO,CAAC,CAAU,CAAC,CAAC;gBAC7B,CAAC;wBAAS,CAAC;oBACP,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,qEAAqE;gBACrE,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;oBAC5B,UAAU,GAAG,IAAI,CAAC,CAAC,6BAA6B;gBACpD,CAAC;qBAAM,CAAC;oBACJ,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,UAAkB;QACrC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAChF,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACzC,iCAAiC;QACjC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,EAAU;QACpB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACjC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,OAAO,EAAE,CAAC;YAE9B,IAAI,KAAqB,CAAC;YAC1B,MAAM,MAAM,GAAG,GAAG,EAAE;gBAChB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,iFAAiF;gBACjF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACf,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACxC,CAAC;gBACD,OAAO,EAAE,CAAC;YACd,CAAC,CAAC;YAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChC,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,eAAe;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;QACb,CAAC;IACL,CAAC;IAEO,gBAAgB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;YAC1C,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;YACb,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACnC,CAAC;CACJ;AAlMD,4CAkMC"}
|
|
@@ -2,29 +2,46 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createContinuousLock = createContinuousLock;
|
|
4
4
|
const OnError_1 = require("./OnError");
|
|
5
|
-
function createContinuousLock(collection, documentId, lockProperty, lockTime) {
|
|
5
|
+
function createContinuousLock(collection, documentId, lockProperty, lockTime, options) {
|
|
6
6
|
let taskInProgress = true;
|
|
7
7
|
let prolongLockTimeoutId = null;
|
|
8
8
|
let lastProlongPromise = Promise.resolve(); // all errors have to be suppressed
|
|
9
|
+
const casEnabled = (options === null || options === void 0 ? void 0 : options.expectedInitialValue) !== undefined;
|
|
10
|
+
let expectedValue = options === null || options === void 0 ? void 0 : options.expectedInitialValue;
|
|
11
|
+
let lockLostNotified = false;
|
|
9
12
|
function scheduleLockProlong() {
|
|
10
13
|
prolongLockTimeoutId = setTimeout(() => {
|
|
11
14
|
prolongLockTimeoutId = null;
|
|
12
15
|
lastProlongPromise = (async () => {
|
|
16
|
+
var _a;
|
|
13
17
|
try {
|
|
14
|
-
// debug('performing lock prolong');
|
|
15
18
|
if (!taskInProgress)
|
|
16
19
|
return;
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
const newValue = new Date(Date.now() + lockTime);
|
|
21
|
+
const filter = (casEnabled ? { _id: documentId, [lockProperty]: expectedValue } : { _id: documentId });
|
|
22
|
+
const result = await collection.updateOne(filter, {
|
|
23
|
+
$set: { [lockProperty]: newValue },
|
|
19
24
|
});
|
|
25
|
+
if (casEnabled && result.matchedCount === 0) {
|
|
26
|
+
taskInProgress = false;
|
|
27
|
+
if (!lockLostNotified) {
|
|
28
|
+
lockLostNotified = true;
|
|
29
|
+
try {
|
|
30
|
+
(_a = options === null || options === void 0 ? void 0 : options.onLockLost) === null || _a === void 0 ? void 0 : _a.call(options);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
(0, OnError_1.onError)(err);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
expectedValue = newValue;
|
|
20
39
|
}
|
|
21
40
|
catch (err) {
|
|
22
|
-
// debug('Error during task prolong', err);
|
|
23
41
|
(0, OnError_1.onError)(err);
|
|
24
42
|
}
|
|
25
43
|
finally {
|
|
26
44
|
if (taskInProgress) {
|
|
27
|
-
// debug('scheduling next lock prolong');
|
|
28
45
|
scheduleLockProlong();
|
|
29
46
|
}
|
|
30
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createContinuousLock.js","sourceRoot":"","sources":["../../src/createContinuousLock.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"createContinuousLock.js","sourceRoot":"","sources":["../../src/createContinuousLock.ts"],"names":[],"mappings":";;AAsBA,oDAgEC;AArFD,uCAAoC;AAqBpC,SAAgB,oBAAoB,CAChC,UAAoC,EACpC,UAA+B,EAC/B,YAAgC,EAChC,QAAgB,EAChB,OAAqC;IAErC,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,oBAAoB,GAAyC,IAAI,CAAC;IACtE,IAAI,kBAAkB,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,mCAAmC;IAEjG,MAAM,UAAU,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,MAAK,SAAS,CAAC;IAC/D,IAAI,aAAa,GAAY,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,oBAAoB,CAAC;IAC3D,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAE7B,SAAS,mBAAmB;QACxB,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,oBAAoB,GAAG,IAAI,CAAC;YAC5B,kBAAkB,GAAG,CAAC,KAAK,IAAI,EAAE;;gBAC7B,IAAI,CAAC;oBACD,IAAI,CAAC,cAAc;wBAAE,OAAO;oBAC5B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;oBACjD,MAAM,MAAM,GAAyB,CACjC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,YAAY,CAAC,EAAE,aAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CACzE,CAAC;oBAE1B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE;wBAC9C,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE;qBACP,CAAC,CAAC;oBAEjC,IAAI,UAAU,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;wBAC1C,cAAc,GAAG,KAAK,CAAC;wBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;4BACpB,gBAAgB,GAAG,IAAI,CAAC;4BACxB,IAAI,CAAC;gCACD,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,uDAAI,CAAC;4BAC5B,CAAC;4BAAC,OAAO,GAAG,EAAE,CAAC;gCACX,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC;4BAC1B,CAAC;wBACL,CAAC;wBACD,OAAO;oBACX,CAAC;oBACD,aAAa,GAAG,QAAQ,CAAC;gBAC7B,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC;gBAC1B,CAAC;wBAAS,CAAC;oBACP,IAAI,cAAc,EAAE,CAAC;wBACjB,mBAAmB,EAAE,CAAC;oBAC1B,CAAC;gBACL,CAAC;YACL,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,mBAAmB,EAAE,CAAC;IAEtB,0BAA0B;IAC1B,OAAO,KAAK,IAAI,EAAE;QACd,cAAc,GAAG,KAAK,CAAC,CAAC,0BAA0B;QAClD,IAAI,oBAAoB,EAAE,CAAC;YACvB,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,kBAAkB,CAAC;IAC7B,CAAC,CAAC;AACN,CAAC"}
|
package/dist/lib/cronTasks.js
CHANGED
|
@@ -21,6 +21,7 @@ exports.cronTask = cronTask;
|
|
|
21
21
|
exports.getCronTasksList = getCronTasksList;
|
|
22
22
|
exports.triggerCronTask = triggerCronTask;
|
|
23
23
|
exports.getRegisteredCronTaskIds = getRegisteredCronTaskIds;
|
|
24
|
+
const ConcurrentRunner_1 = require("./ConcurrentRunner");
|
|
24
25
|
const createContinuousLock_1 = require("./createContinuousLock");
|
|
25
26
|
const getCollection_1 = require("./getCollection");
|
|
26
27
|
const initPromise_1 = require("./initPromise");
|
|
@@ -28,7 +29,7 @@ const OnError_1 = require("./OnError");
|
|
|
28
29
|
const OnInfo_1 = require("./OnInfo");
|
|
29
30
|
const parseInterval_1 = require("./parseInterval");
|
|
30
31
|
function init(options) {
|
|
31
|
-
if (state.working) {
|
|
32
|
+
if (state.working || state.runner) {
|
|
32
33
|
throw new Error('Cron tasks are already running');
|
|
33
34
|
}
|
|
34
35
|
state.runCronTasks = options.runCronTasks;
|
|
@@ -38,6 +39,13 @@ function init(options) {
|
|
|
38
39
|
state.cronExpressionParserOptions = options.cronExpressionParserOptions;
|
|
39
40
|
state.cronTaskCaller = options.cronTaskCaller;
|
|
40
41
|
state.cronTaskFilter = options.cronTaskFilter;
|
|
42
|
+
// Floor to a safe integer rather than bitwise truncation (which wraps at 32 bits).
|
|
43
|
+
const requested = Number(options.cronTaskConcurrency);
|
|
44
|
+
const concurrency = Math.max(1, Number.isFinite(requested) ? Math.floor(requested) : 1);
|
|
45
|
+
state.concurrency = concurrency;
|
|
46
|
+
if (concurrency > 1) {
|
|
47
|
+
state.runner = new ConcurrentRunner_1.ConcurrentRunner({ concurrency }, (error) => (0, OnError_1.onError)(error));
|
|
48
|
+
}
|
|
41
49
|
if (state.runCronTasks) {
|
|
42
50
|
(0, OnInfo_1.onInfo)({ message: 'Cron tasks processing started', code: exports.CODE_CRON_TASK_STARTED });
|
|
43
51
|
if (state.tasks.size) {
|
|
@@ -63,8 +71,24 @@ class TaskDocument {
|
|
|
63
71
|
const noTaskWaitTime = 5 * 1000;
|
|
64
72
|
const state = {
|
|
65
73
|
tasks: new Map(),
|
|
74
|
+
// Legacy serial scheduler state (used when concurrency === 1).
|
|
66
75
|
nextTaskTimeoutId: null,
|
|
67
76
|
working: false,
|
|
77
|
+
// Set by ensureStarted when it is called while the loop is already busy
|
|
78
|
+
// (working === true). The loop's finally block checks this and schedules
|
|
79
|
+
// a 0-delay next iteration so a task registered mid-iteration is never
|
|
80
|
+
// missed.
|
|
81
|
+
pendingWake: false,
|
|
82
|
+
// ConcurrentRunner state (used when concurrency > 1).
|
|
83
|
+
runner: null,
|
|
84
|
+
runnerStarted: false,
|
|
85
|
+
// Non-null while the runner is in the middle of stopping. ensureStarted
|
|
86
|
+
// chains on this promise so a rapid stop + start sequence waits for the
|
|
87
|
+
// previous teardown before firing a new start - otherwise
|
|
88
|
+
// ConcurrentRunner.start() is a no-op (isRunning still true) and the
|
|
89
|
+
// scheduler would stall with runnerStarted=true but no live workers.
|
|
90
|
+
runnerStopPromise: null,
|
|
91
|
+
concurrency: 1,
|
|
68
92
|
_collection: null,
|
|
69
93
|
get collection() {
|
|
70
94
|
if (!this._collection) {
|
|
@@ -80,6 +104,7 @@ const state = {
|
|
|
80
104
|
cronTaskCaller: null,
|
|
81
105
|
cronTaskFilter: null,
|
|
82
106
|
};
|
|
107
|
+
const CRON_SOURCE_NAME = '_cron_tasks';
|
|
83
108
|
// Removed module-level vars that are now in state or imported
|
|
84
109
|
// let taskCaller: CronTaskCaller;
|
|
85
110
|
// let taskFilter: CronTaskFilter;
|
|
@@ -252,7 +277,7 @@ async function processTask(task, enforcedTask) {
|
|
|
252
277
|
(0, OnError_1.onError)(err);
|
|
253
278
|
}
|
|
254
279
|
}
|
|
255
|
-
/**
|
|
280
|
+
/** Can never throw. */
|
|
256
281
|
async function getWaitTimeByNextTask() {
|
|
257
282
|
try {
|
|
258
283
|
const nextTask = await state.collection.findOne(getTasksToProcessFilter(), {
|
|
@@ -270,24 +295,30 @@ async function getWaitTimeByNextTask() {
|
|
|
270
295
|
return noTaskWaitTime;
|
|
271
296
|
}
|
|
272
297
|
}
|
|
298
|
+
// --- Serial scheduler (concurrency === 1) --------------------------------
|
|
299
|
+
// This is the historical single-loop implementation. It is used verbatim
|
|
300
|
+
// when `cronTaskConcurrency` is 1 (the default) so existing behaviour -
|
|
301
|
+
// including exact wake-up timing that several tests assert on - is
|
|
302
|
+
// preserved byte-for-byte.
|
|
273
303
|
function runATask() {
|
|
274
304
|
debug('runATask called');
|
|
275
305
|
state.working = true;
|
|
306
|
+
state.pendingWake = false;
|
|
276
307
|
(async () => {
|
|
277
308
|
await initPromise_1.initPromise;
|
|
278
|
-
const enforcedTask = state.enforcedTasks.shift() || null;
|
|
309
|
+
const enforcedTask = state.enforcedTasks.shift() || null;
|
|
279
310
|
let task = null;
|
|
280
311
|
const countOfTasks = state.tasks.size;
|
|
281
312
|
try {
|
|
282
313
|
task = await findATaskToRun(enforcedTask);
|
|
283
314
|
if (!task) {
|
|
284
315
|
debug('no pending task found');
|
|
285
|
-
return;
|
|
316
|
+
return;
|
|
286
317
|
}
|
|
287
318
|
await processTask(task, enforcedTask);
|
|
288
319
|
}
|
|
289
320
|
catch (error) {
|
|
290
|
-
debug(`Catch error ${error}
|
|
321
|
+
debug(`Catch error ${error}`);
|
|
291
322
|
if (enforcedTask) {
|
|
292
323
|
enforcedTask.reject(error);
|
|
293
324
|
}
|
|
@@ -298,19 +329,17 @@ function runATask() {
|
|
|
298
329
|
finally {
|
|
299
330
|
const shouldTriggerNext = () => state.runCronTasks || !!state.enforcedTasks.length;
|
|
300
331
|
if (shouldTriggerNext()) {
|
|
301
|
-
// if there was no task, wait for standard time,
|
|
302
|
-
// but try find another one when one has finished
|
|
303
|
-
// or a new task has been registered
|
|
304
332
|
const aTaskHasBeenRegistered = () => state.tasks.size !== countOfTasks;
|
|
305
333
|
let waitTime = 0;
|
|
306
|
-
|
|
334
|
+
// If ensureStarted was called while we were busy (e.g. cronTask()
|
|
335
|
+
// registered a new task mid-iteration and cleared our existing
|
|
336
|
+
// timer), re-run immediately regardless of what the DB says.
|
|
337
|
+
if (!state.pendingWake && !task && !aTaskHasBeenRegistered() && !state.enforcedTasks.length) {
|
|
307
338
|
waitTime = await getWaitTimeByNextTask();
|
|
308
|
-
|
|
309
|
-
if (aTaskHasBeenRegistered() || state.enforcedTasks.length) {
|
|
339
|
+
if (state.pendingWake || aTaskHasBeenRegistered() || state.enforcedTasks.length) {
|
|
310
340
|
waitTime = 0;
|
|
311
341
|
}
|
|
312
342
|
}
|
|
313
|
-
// should we still trigger next?
|
|
314
343
|
if (shouldTriggerNext()) {
|
|
315
344
|
debug(`SCHEDULING NEXT CHECK AFTER ${waitTime} ms`);
|
|
316
345
|
state.nextTaskTimeoutId = setTimeout(() => {
|
|
@@ -324,23 +353,131 @@ function runATask() {
|
|
|
324
353
|
}
|
|
325
354
|
})();
|
|
326
355
|
}
|
|
356
|
+
// --- Parallel scheduler (concurrency > 1) --------------------------------
|
|
357
|
+
// Wraps ConcurrentRunner around the same findATaskToRun / processTask
|
|
358
|
+
// primitives. Multiple workers poll the cron collection in parallel; each
|
|
359
|
+
// task is still serialised against itself via the per-taskId lockedTill
|
|
360
|
+
// mechanism, so raising concurrency never causes a single task to run
|
|
361
|
+
// twice simultaneously.
|
|
362
|
+
async function tryRunOneTaskViaRunner() {
|
|
363
|
+
var _a;
|
|
364
|
+
await initPromise_1.initPromise;
|
|
365
|
+
const enforcedTask = state.enforcedTasks.shift() || null;
|
|
366
|
+
let task = null;
|
|
367
|
+
try {
|
|
368
|
+
task = await findATaskToRun(enforcedTask);
|
|
369
|
+
if (!task) {
|
|
370
|
+
debug('no pending task found');
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
await processTask(task, enforcedTask);
|
|
374
|
+
// A task just completed - there may be another ready right now, so
|
|
375
|
+
// poll again immediately instead of applying back-off.
|
|
376
|
+
(_a = state.runner) === null || _a === void 0 ? void 0 : _a.speedUp(CRON_SOURCE_NAME);
|
|
377
|
+
}
|
|
378
|
+
catch (error) {
|
|
379
|
+
debug(`Catch error ${error}`);
|
|
380
|
+
if (enforcedTask) {
|
|
381
|
+
enforcedTask.reject(error);
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
(0, OnError_1.onError)(error);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
finally {
|
|
388
|
+
if (!task && state.runner && state.runnerStarted && state.enforcedTasks.length === 0) {
|
|
389
|
+
if (state.runCronTasks) {
|
|
390
|
+
const waitMs = await getWaitTimeByNextTask();
|
|
391
|
+
state.runner.setNextRunAt(CRON_SOURCE_NAME, Date.now() + waitMs);
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
// Mirror the serial scheduler: once runCronTasks has been
|
|
395
|
+
// turned off and there is no enforced task to run we stop
|
|
396
|
+
// polling entirely. A later runCronTask() / startCronTasks()
|
|
397
|
+
// will re-enter ensureStarted which restarts the runner.
|
|
398
|
+
state.runnerStarted = false;
|
|
399
|
+
// Track the stop promise here too so a rapid runCronTask()
|
|
400
|
+
// call that arrives mid-drain chains on it in ensureStarted
|
|
401
|
+
// (see the same race covered by stopCronTasks).
|
|
402
|
+
state.runnerStopPromise = state.runner.stop().catch((err) => {
|
|
403
|
+
(0, OnError_1.onError)(err);
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
327
409
|
function ensureStarted() {
|
|
328
|
-
|
|
410
|
+
if (state.runner) {
|
|
411
|
+
// Parallel path.
|
|
412
|
+
// If a previous stopCronTasks() is still draining the runner, wait
|
|
413
|
+
// for it before (re)starting. Without this the inner start() call
|
|
414
|
+
// would no-op (isRunning still true) and we would end up with
|
|
415
|
+
// runnerStarted=true but no actual workers.
|
|
416
|
+
if (state.runnerStopPromise) {
|
|
417
|
+
const pending = state.runnerStopPromise;
|
|
418
|
+
pending
|
|
419
|
+
.then(() => {
|
|
420
|
+
if (state.runnerStopPromise === pending) {
|
|
421
|
+
state.runnerStopPromise = null;
|
|
422
|
+
}
|
|
423
|
+
// Re-evaluate: cron may have been stopped again in the
|
|
424
|
+
// meantime or runCronTasks may have flipped off.
|
|
425
|
+
if (state.runCronTasks || state.enforcedTasks.length > 0) {
|
|
426
|
+
ensureStarted();
|
|
427
|
+
}
|
|
428
|
+
})
|
|
429
|
+
.catch((err) => (0, OnError_1.onError)(err));
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
if (!state.runner.hasSource(CRON_SOURCE_NAME)) {
|
|
433
|
+
state.runner.registerSource(CRON_SOURCE_NAME, {
|
|
434
|
+
minPollMs: 200,
|
|
435
|
+
maxPollMs: noTaskWaitTime,
|
|
436
|
+
jitterMs: 100,
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
if (!state.runnerStarted) {
|
|
440
|
+
debug('STARTING RUNNER');
|
|
441
|
+
state.runnerStarted = true;
|
|
442
|
+
state.runner.start(() => tryRunOneTaskViaRunner());
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
state.runner.speedUp(CRON_SOURCE_NAME);
|
|
446
|
+
}
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
// Serial path.
|
|
329
450
|
if (state.nextTaskTimeoutId) {
|
|
330
451
|
clearTimeout(state.nextTaskTimeoutId);
|
|
331
452
|
state.nextTaskTimeoutId = null;
|
|
332
453
|
}
|
|
333
|
-
if (
|
|
334
|
-
|
|
335
|
-
|
|
454
|
+
if (state.working) {
|
|
455
|
+
// The loop is mid-iteration. It will notice pendingWake in its
|
|
456
|
+
// finally block and schedule the next iteration at 0ms.
|
|
457
|
+
state.pendingWake = true;
|
|
458
|
+
return;
|
|
336
459
|
}
|
|
337
|
-
|
|
460
|
+
debug('STARTING LOOP');
|
|
461
|
+
runATask();
|
|
338
462
|
}
|
|
339
463
|
function stopCronTasks() {
|
|
340
464
|
debug('STOPPING CRON TASKS');
|
|
341
465
|
state.runCronTasks = false;
|
|
342
466
|
if (state.nextTaskTimeoutId) {
|
|
343
467
|
clearTimeout(state.nextTaskTimeoutId);
|
|
468
|
+
state.nextTaskTimeoutId = null;
|
|
469
|
+
}
|
|
470
|
+
if (state.runner && state.runnerStarted) {
|
|
471
|
+
state.runnerStarted = false;
|
|
472
|
+
// Fire and forget: the historical API is synchronous (returns void).
|
|
473
|
+
// Any in-flight tasks will finish on their own; further polls will
|
|
474
|
+
// not happen because runnerStarted is already cleared. Track the
|
|
475
|
+
// stop promise so ensureStarted can chain on it if the caller
|
|
476
|
+
// restarts cron before teardown completes - see the race Copilot
|
|
477
|
+
// flagged on PR #460.
|
|
478
|
+
state.runnerStopPromise = state.runner.stop().catch((err) => {
|
|
479
|
+
(0, OnError_1.onError)(err);
|
|
480
|
+
});
|
|
344
481
|
}
|
|
345
482
|
}
|
|
346
483
|
function startCronTasks() {
|
|
@@ -448,8 +585,10 @@ async function getCronTasksList(query = {}) {
|
|
|
448
585
|
};
|
|
449
586
|
}
|
|
450
587
|
/**
|
|
451
|
-
*
|
|
452
|
-
*
|
|
588
|
+
* @deprecated Alias for {@link scheduleCronTaskImmediately}. Prefer that name for
|
|
589
|
+
* clarity - it describes exactly what happens (the task is scheduled to run on
|
|
590
|
+
* the next polling tick, not necessarily this very millisecond). This alias will
|
|
591
|
+
* be removed in a future major version.
|
|
453
592
|
*/
|
|
454
593
|
async function triggerCronTask(taskId) {
|
|
455
594
|
return scheduleCronTaskImmediately(taskId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cronTasks.js","sourceRoot":"","sources":["../../src/cronTasks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cronTasks.js","sourceRoot":"","sources":["../../src/cronTasks.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.withTransaction = exports.registerPostCommitHook = exports.withLock = exports.LockAlreadyAcquiredError = exports.isLockAlreadyAcquiredError = exports.serveDashboard = exports.OperationalTaskController = exports._scheduler = exports.TaskConditionFailedError = exports.stopReactiveTasks = exports.startReactiveTasks = exports.retryReactiveTasks = exports.reactiveTask = exports.getReactiveTasks = exports.getPrometheusMetrics = exports.countReactiveTasks = exports.CODE_REACTIVE_TASK_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR = exports.CODE_REACTIVE_TASK_PLANNER_STOPPED = exports.CODE_REACTIVE_TASK_PLANNER_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED = exports.CODE_REACTIVE_TASK_LEADER_LOCK_LOST = exports.CODE_REACTIVE_TASK_FINISHED = exports.CODE_REACTIVE_TASK_FAILED = exports.processInBatches = exports.getMongoClient = exports.getCollection = exports.triggerCronTask = exports.stopCronTasks = exports.startCronTasks = exports.scheduleCronTaskImmediately = exports.runCronTask = exports.getCronTasksList = exports.cronTask = exports.CODE_CRON_TASK_STARTED = exports.CODE_CRON_TASK_SCHEDULED = exports.CODE_CRON_TASK_FINISHED = exports.CODE_CRON_TASK_FAILED = void 0;
|
|
17
|
+
exports.withTransaction = exports.registerPostCommitHook = exports.withLock = exports.LockAlreadyAcquiredError = exports.isLockAlreadyAcquiredError = exports.serveDashboard = exports.OperationalTaskController = exports._scheduler = exports.TaskConditionFailedError = exports.stopReactiveTasks = exports.startReactiveTasks = exports.retryReactiveTasks = exports.reactiveTask = exports.getReactiveTasks = exports.getPrometheusMetrics = exports.countReactiveTasks = exports.CODE_REACTIVE_TASK_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_STREAM_ERROR = exports.CODE_REACTIVE_TASK_PLANNER_STOPPED = exports.CODE_REACTIVE_TASK_PLANNER_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED = exports.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED = exports.CODE_REACTIVE_TASK_LOCK_LOST = exports.CODE_REACTIVE_TASK_LEADER_LOCK_LOST = exports.CODE_REACTIVE_TASK_INITIALIZED = exports.CODE_REACTIVE_TASK_FINISHED = exports.CODE_REACTIVE_TASK_FAILED = exports.CODE_REACTIVE_TASK_CLEANUP = exports.processInBatches = exports.getMongoClient = exports.getCollection = exports.triggerCronTask = exports.stopCronTasks = exports.startCronTasks = exports.scheduleCronTaskImmediately = exports.runCronTask = exports.getCronTasksList = exports.cronTask = exports.CODE_CRON_TASK_STARTED = exports.CODE_CRON_TASK_SCHEDULED = exports.CODE_CRON_TASK_FINISHED = exports.CODE_CRON_TASK_FAILED = void 0;
|
|
18
18
|
exports.init = init;
|
|
19
19
|
const cronTasks_1 = require("./cronTasks");
|
|
20
20
|
const getCollection_1 = require("./getCollection");
|
|
@@ -43,9 +43,12 @@ Object.defineProperty(exports, "getMongoClient", { enumerable: true, get: functi
|
|
|
43
43
|
var processInBatches_1 = require("./processInBatches");
|
|
44
44
|
Object.defineProperty(exports, "processInBatches", { enumerable: true, get: function () { return processInBatches_1.processInBatches; } });
|
|
45
45
|
var reactiveTasks_2 = require("./reactiveTasks");
|
|
46
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_CLEANUP", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_CLEANUP; } });
|
|
46
47
|
Object.defineProperty(exports, "CODE_REACTIVE_TASK_FAILED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_FAILED; } });
|
|
47
48
|
Object.defineProperty(exports, "CODE_REACTIVE_TASK_FINISHED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_FINISHED; } });
|
|
49
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_INITIALIZED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_INITIALIZED; } });
|
|
48
50
|
Object.defineProperty(exports, "CODE_REACTIVE_TASK_LEADER_LOCK_LOST", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_LEADER_LOCK_LOST; } });
|
|
51
|
+
Object.defineProperty(exports, "CODE_REACTIVE_TASK_LOCK_LOST", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_LOCK_LOST; } });
|
|
49
52
|
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED; } });
|
|
50
53
|
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED; } });
|
|
51
54
|
Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_STARTED; } });
|
|
@@ -74,7 +77,7 @@ Object.defineProperty(exports, "registerPostCommitHook", { enumerable: true, get
|
|
|
74
77
|
Object.defineProperty(exports, "withTransaction", { enumerable: true, get: function () { return withTransaction_1.withTransaction; } });
|
|
75
78
|
let initCalled = false;
|
|
76
79
|
async function init(options) {
|
|
77
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
80
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
78
81
|
if (initCalled) {
|
|
79
82
|
throw new Error('init method can be called only once.');
|
|
80
83
|
}
|
|
@@ -101,11 +104,12 @@ async function init(options) {
|
|
|
101
104
|
(0, withLock_1.reset)();
|
|
102
105
|
(0, cronTasks_1.init)({
|
|
103
106
|
runCronTasks: (_c = options.runCronTasks) !== null && _c !== void 0 ? _c : true,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
+
cronTaskConcurrency: (_d = options.cronTaskConcurrency) !== null && _d !== void 0 ? _d : 1,
|
|
108
|
+
cronExpressionParserOptions: (_e = options.cronExpressionParserOptions) !== null && _e !== void 0 ? _e : {},
|
|
109
|
+
cronTaskCaller: (_f = options.cronTaskCaller) !== null && _f !== void 0 ? _f : taskCaller,
|
|
110
|
+
cronTaskFilter: (_g = options.cronTaskFilter) !== null && _g !== void 0 ? _g : (() => true),
|
|
107
111
|
});
|
|
108
|
-
(0, reactiveTasks_1.init)(Object.assign(Object.assign({}, options), { globalsCollection: globalsCollection, reactiveTaskCaller: (
|
|
112
|
+
(0, reactiveTasks_1.init)(Object.assign(Object.assign({}, options), { globalsCollection: globalsCollection, reactiveTaskCaller: (_h = options.reactiveTaskCaller) !== null && _h !== void 0 ? _h : taskCaller }));
|
|
109
113
|
(0, initPromise_1.resolveInitPromise)();
|
|
110
114
|
}
|
|
111
115
|
//# sourceMappingURL=index.js.map
|
package/dist/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|