mongodash 2.6.0 → 2.8.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.
Files changed (66) hide show
  1. package/README.md +45 -0
  2. package/dist/lib/ConcurrentRunner.js +47 -2
  3. package/dist/lib/ConcurrentRunner.js.map +1 -1
  4. package/dist/lib/createContinuousLock.js +23 -6
  5. package/dist/lib/createContinuousLock.js.map +1 -1
  6. package/dist/lib/cronTasks.js +119 -64
  7. package/dist/lib/cronTasks.js.map +1 -1
  8. package/dist/lib/index.js +11 -6
  9. package/dist/lib/index.js.map +1 -1
  10. package/dist/lib/reactiveTasks/LeaderElector.js +21 -3
  11. package/dist/lib/reactiveTasks/LeaderElector.js.map +1 -1
  12. package/dist/lib/reactiveTasks/MetricsCollector.js +118 -39
  13. package/dist/lib/reactiveTasks/MetricsCollector.js.map +1 -1
  14. package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js +66 -31
  15. package/dist/lib/reactiveTasks/ReactiveTaskPlanner.js.map +1 -1
  16. package/dist/lib/reactiveTasks/ReactiveTaskRepository.js +19 -1
  17. package/dist/lib/reactiveTasks/ReactiveTaskRepository.js.map +1 -1
  18. package/dist/lib/reactiveTasks/ReactiveTaskTypes.js +7 -1
  19. package/dist/lib/reactiveTasks/ReactiveTaskTypes.js.map +1 -1
  20. package/dist/lib/reactiveTasks/ReactiveTaskWorker.js +80 -5
  21. package/dist/lib/reactiveTasks/ReactiveTaskWorker.js.map +1 -1
  22. package/dist/lib/reactiveTasks/index.js +20 -13
  23. package/dist/lib/reactiveTasks/index.js.map +1 -1
  24. package/dist/lib/task-management/OperationalTaskController.js +1 -1
  25. package/dist/lib/task-management/OperationalTaskController.js.map +1 -1
  26. package/dist/lib/testing/assertNoReactiveTaskErrors.js +16 -12
  27. package/dist/lib/testing/assertNoReactiveTaskErrors.js.map +1 -1
  28. package/dist/lib/testing/index.js +2 -0
  29. package/dist/lib/testing/index.js.map +1 -1
  30. package/dist/lib/testing/resolveWhitelistFilter.js +48 -0
  31. package/dist/lib/testing/resolveWhitelistFilter.js.map +1 -0
  32. package/dist/lib/testing/waitUntilReactiveTasksIdle.js +17 -46
  33. package/dist/lib/testing/waitUntilReactiveTasksIdle.js.map +1 -1
  34. package/dist/types/ConcurrentRunner.d.ts +16 -0
  35. package/dist/types/createContinuousLock.d.ts +17 -1
  36. package/dist/types/cronTasks.d.ts +17 -2
  37. package/dist/types/index.d.ts +2 -2
  38. package/dist/types/reactiveTasks/LeaderElector.d.ts +15 -1
  39. package/dist/types/reactiveTasks/MetricsCollector.d.ts +19 -8
  40. package/dist/types/reactiveTasks/ReactiveTaskPlanner.d.ts +11 -0
  41. package/dist/types/reactiveTasks/ReactiveTaskRepository.d.ts +10 -1
  42. package/dist/types/reactiveTasks/ReactiveTaskTypes.d.ts +19 -0
  43. package/dist/types/reactiveTasks/index.d.ts +8 -2
  44. package/dist/types/testing/assertNoReactiveTaskErrors.d.ts +4 -4
  45. package/dist/types/testing/index.d.ts +2 -0
  46. package/dist/types/testing/resolveWhitelistFilter.d.ts +35 -0
  47. package/dist/types/testing/waitUntilReactiveTasksIdle.d.ts +7 -13
  48. package/docs/.vitepress/config.mts +9 -1
  49. package/docs/cron-tasks.md +130 -1
  50. package/docs/error-handling.md +156 -0
  51. package/docs/reactive-tasks/guides.md +1 -1
  52. package/docs/reactive-tasks/index.md +2 -2
  53. package/docs/reactive-tasks/monitoring.md +7 -0
  54. package/docs/reactive-tasks/testing.md +187 -0
  55. package/docs/testing.md +60 -94
  56. package/package.json +36 -24
  57. package/docs/.vitepress/cache/deps/_metadata.json +0 -31
  58. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js +0 -12824
  59. package/docs/.vitepress/cache/deps/chunk-LE5NDSFD.js.map +0 -7
  60. package/docs/.vitepress/cache/deps/package.json +0 -3
  61. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
  62. package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
  63. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -9731
  64. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
  65. package/docs/.vitepress/cache/deps/vue.js +0 -347
  66. package/docs/.vitepress/cache/deps/vue.js.map +0 -7
package/README.md CHANGED
@@ -185,3 +185,48 @@ 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
+ ### Reporting issues
230
+
231
+ File issues at https://github.com/VaclavObornik/mongodash/issues. Include
232
+ 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
- const debug = _debug('mongodash:ConcurrentRunner');
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;
@@ -35,6 +41,17 @@ class ConcurrentRunner {
35
41
  return;
36
42
  this.isRunning = true;
37
43
  this.tryRunATask = tryRunATask;
44
+ // Source metadata is intentionally preserved across stop() (callers
45
+ // may re-use the same runner instance), but a stale nextRunAt from
46
+ // a previous cycle would otherwise make freshly spawned workers
47
+ // sleep for the remainder of that (possibly hour-long) window
48
+ // before noticing new work. Reset schedules so a fresh start polls
49
+ // immediately.
50
+ const now = Date.now();
51
+ for (const state of this.sources.values()) {
52
+ state.nextRunAt = now;
53
+ state.currentBackoff = state.options.minPollMs;
54
+ }
38
55
  for (let i = 0; i < this.options.concurrency; i++) {
39
56
  this.workers.push(this.runWorker());
40
57
  }
@@ -59,6 +76,34 @@ class ConcurrentRunner {
59
76
  debug(`SpeedUp called for ${sourceName}`);
60
77
  }
61
78
  }
79
+ /**
80
+ * Override the back-off schedule so the next poll for `sourceName`
81
+ * happens at approximately `runAt` (a millisecond epoch timestamp).
82
+ * Intended for callers that already know when their next unit of work
83
+ * is due - e.g. cron scheduling an hour out - to skip wasted polls.
84
+ *
85
+ * - `runAt` must be a finite number; non-finite values are ignored.
86
+ * - If `state.nextRunAt` is already at or before `now`, the write is
87
+ * skipped: something more urgent (usually {@link speedUp}) has
88
+ * already signalled an immediate poll and we must not push it
89
+ * back out. The worker picks up the signal on its next iteration.
90
+ * - Otherwise `nextRunAt` is overwritten with `runAt` (even if `runAt`
91
+ * is in the past - that behaves like {@link speedUp}).
92
+ * - Back-off is reset so a subsequent wake-up fires at `minPollMs`.
93
+ */
94
+ setNextRunAt(sourceName, runAt) {
95
+ const state = this.sources.get(sourceName);
96
+ if (!state)
97
+ return;
98
+ if (!Number.isFinite(runAt))
99
+ return;
100
+ state.currentBackoff = state.options.minPollMs;
101
+ if (state.nextRunAt > Date.now()) {
102
+ state.nextRunAt = runAt;
103
+ }
104
+ // Wake workers so any currently-sleeping one can recompute its wait.
105
+ this.wakeUpAllWorkers();
106
+ }
62
107
  updateAllSources(options) {
63
108
  for (const state of this.sources.values()) {
64
109
  state.options = Object.assign(Object.assign({}, state.options), options);
@@ -1 +1 @@
1
- {"version":3,"file":"ConcurrentRunner.js","sourceRoot":"","sources":["../../src/ConcurrentRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConcurrentRunner.js","sourceRoot":"","sources":["../../src/ConcurrentRunner.ts"],"names":[],"mappings":"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"}
@@ -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
- await collection.updateOne({ _id: documentId }, {
18
- $set: { [lockProperty]: new Date(Date.now() + lockTime) },
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":";;AAKA,oDA8CC;AAlDD,uCAAoC;AAIpC,SAAgB,oBAAoB,CAChC,UAAoC,EACpC,UAA+B,EAC/B,YAAgC,EAChC,QAAgB;IAEhB,IAAI,cAAc,GAAG,IAAI,CAAC;IAC1B,IAAI,oBAAoB,GAAyC,IAAI,CAAC;IACtE,IAAI,kBAAkB,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,mCAAmC;IAEjG,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,oCAAoC;oBACpC,IAAI,CAAC,cAAc;wBAAE,OAAO;oBAC5B,MAAM,UAAU,CAAC,SAAS,CACtB,EAAE,GAAG,EAAE,UAAU,EAA0B,EAC3C;wBACI,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,EAAE;qBAC9B,CAClC,CAAC;gBACN,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACX,2CAA2C;oBAC3C,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC;gBAC1B,CAAC;wBAAS,CAAC;oBACP,IAAI,cAAc,EAAE,CAAC;wBACjB,yCAAyC;wBACzC,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"}
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"}
@@ -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.runner) {
32
33
  throw new Error('Cron tasks are already running');
33
34
  }
34
35
  state.runCronTasks = options.runCronTasks;
@@ -38,6 +39,10 @@ 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.runner = new ConcurrentRunner_1.ConcurrentRunner({ concurrency }, (error) => (0, OnError_1.onError)(error));
41
46
  if (state.runCronTasks) {
42
47
  (0, OnInfo_1.onInfo)({ message: 'Cron tasks processing started', code: exports.CODE_CRON_TASK_STARTED });
43
48
  if (state.tasks.size) {
@@ -63,8 +68,17 @@ class TaskDocument {
63
68
  const noTaskWaitTime = 5 * 1000;
64
69
  const state = {
65
70
  tasks: new Map(),
66
- nextTaskTimeoutId: null,
67
- working: false,
71
+ // Runner state. `runner` is created in init() and reused across
72
+ // start/stop cycles. `runnerStarted` tracks whether workers are
73
+ // currently looping. `runnerStopPromise` is non-null while a previous
74
+ // stop is still draining; ensureStarted chains on it so a rapid
75
+ // stop + start sequence waits for the previous teardown before firing
76
+ // a new start - otherwise ConcurrentRunner.start() is a no-op
77
+ // (isRunning still true) and the scheduler would stall with
78
+ // runnerStarted=true but no live workers.
79
+ runner: null,
80
+ runnerStarted: false,
81
+ runnerStopPromise: null,
68
82
  _collection: null,
69
83
  get collection() {
70
84
  if (!this._collection) {
@@ -80,6 +94,7 @@ const state = {
80
94
  cronTaskCaller: null,
81
95
  cronTaskFilter: null,
82
96
  };
97
+ const CRON_SOURCE_NAME = '_cron_tasks';
83
98
  // Removed module-level vars that are now in state or imported
84
99
  // let taskCaller: CronTaskCaller;
85
100
  // let taskFilter: CronTaskFilter;
@@ -252,7 +267,7 @@ async function processTask(task, enforcedTask) {
252
267
  (0, OnError_1.onError)(err);
253
268
  }
254
269
  }
255
- /** can never throw */
270
+ /** Can never throw. */
256
271
  async function getWaitTimeByNextTask() {
257
272
  try {
258
273
  const nextTask = await state.collection.findOne(getTasksToProcessFilter(), {
@@ -270,77 +285,115 @@ async function getWaitTimeByNextTask() {
270
285
  return noTaskWaitTime;
271
286
  }
272
287
  }
273
- function runATask() {
274
- debug('runATask called');
275
- state.working = true;
276
- (async () => {
277
- await initPromise_1.initPromise;
278
- const enforcedTask = state.enforcedTasks.shift() || null; // there can be no enforced task
279
- let task = null;
280
- const countOfTasks = state.tasks.size;
281
- try {
282
- task = await findATaskToRun(enforcedTask);
283
- if (!task) {
284
- debug('no pending task found');
285
- return; // the finally statement will be called anyway
286
- }
287
- await processTask(task, enforcedTask);
288
+ // --- Scheduler ---------------------------------------------------------
289
+ // One ConcurrentRunner-driven loop for all concurrencies. Each worker
290
+ // polls the cron collection; `findATaskToRun` uses an atomic
291
+ // findOneAndUpdate on `lockedTill` so a task is serialised against itself
292
+ // regardless of how many workers are running. speedUp after a successful
293
+ // run skips the runner's back-off so a burst of pending tasks drains
294
+ // quickly; setNextRunAt on an empty poll defers the next tick to the
295
+ // known runSince of the soonest task.
296
+ async function runATask() {
297
+ var _a;
298
+ await initPromise_1.initPromise;
299
+ const enforcedTask = state.enforcedTasks.shift() || null;
300
+ let task = null;
301
+ try {
302
+ task = await findATaskToRun(enforcedTask);
303
+ if (!task) {
304
+ debug('no pending task found');
305
+ return;
288
306
  }
289
- catch (error) {
290
- debug(`Catch error ${error} `);
291
- if (enforcedTask) {
292
- enforcedTask.reject(error);
307
+ await processTask(task, enforcedTask);
308
+ // A task just completed - there may be another ready right now, so
309
+ // poll again immediately instead of applying back-off.
310
+ (_a = state.runner) === null || _a === void 0 ? void 0 : _a.speedUp(CRON_SOURCE_NAME);
311
+ }
312
+ catch (error) {
313
+ debug(`Catch error ${error}`);
314
+ if (enforcedTask) {
315
+ enforcedTask.reject(error);
316
+ }
317
+ else {
318
+ (0, OnError_1.onError)(error);
319
+ }
320
+ }
321
+ finally {
322
+ if (!task && state.runner && state.runnerStarted && state.enforcedTasks.length === 0) {
323
+ if (state.runCronTasks) {
324
+ const waitMs = await getWaitTimeByNextTask();
325
+ // ConcurrentRunner's setNextRunAt no-ops if a concurrent
326
+ // speedUp() already pulled nextRunAt to the past, so our
327
+ // potentially-stale waitMs cannot swallow that signal.
328
+ state.runner.setNextRunAt(CRON_SOURCE_NAME, Date.now() + waitMs);
293
329
  }
294
330
  else {
295
- (0, OnError_1.onError)(error);
296
- }
297
- }
298
- finally {
299
- const shouldTriggerNext = () => state.runCronTasks || !!state.enforcedTasks.length;
300
- 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
- const aTaskHasBeenRegistered = () => state.tasks.size !== countOfTasks;
305
- let waitTime = 0;
306
- if (!task && !aTaskHasBeenRegistered() && !state.enforcedTasks.length) {
307
- waitTime = await getWaitTimeByNextTask();
308
- // a task can be registered in the meanwhile
309
- if (aTaskHasBeenRegistered() || state.enforcedTasks.length) {
310
- waitTime = 0;
311
- }
312
- }
313
- // should we still trigger next?
314
- if (shouldTriggerNext()) {
315
- debug(`SCHEDULING NEXT CHECK AFTER ${waitTime} ms`);
316
- state.nextTaskTimeoutId = setTimeout(() => {
317
- debug("it's time!");
318
- state.nextTaskTimeoutId = null;
319
- runATask();
320
- }, waitTime);
321
- }
331
+ // Once runCronTasks has been turned off and there is no
332
+ // enforced task to run we stop polling entirely. A later
333
+ // runCronTask() / startCronTasks() will re-enter
334
+ // ensureStarted which restarts the runner.
335
+ state.runnerStarted = false;
336
+ // Track the stop promise here too so a rapid runCronTask()
337
+ // call that arrives mid-drain chains on it in ensureStarted
338
+ // (see the same race covered by stopCronTasks).
339
+ state.runnerStopPromise = state.runner.stop().catch((err) => {
340
+ (0, OnError_1.onError)(err);
341
+ });
322
342
  }
323
- state.working = false;
324
343
  }
325
- })();
344
+ }
326
345
  }
327
346
  function ensureStarted() {
328
- // terminate waiting if there is any
329
- if (state.nextTaskTimeoutId) {
330
- clearTimeout(state.nextTaskTimeoutId);
331
- state.nextTaskTimeoutId = null;
347
+ // If a previous stopCronTasks() is still draining the runner, wait
348
+ // for it before (re)starting. Without this the inner start() call
349
+ // would no-op (isRunning still true) and we would end up with
350
+ // runnerStarted=true but no actual workers.
351
+ if (state.runnerStopPromise) {
352
+ const pending = state.runnerStopPromise;
353
+ pending
354
+ .then(() => {
355
+ if (state.runnerStopPromise === pending) {
356
+ state.runnerStopPromise = null;
357
+ }
358
+ // Re-evaluate: cron may have been stopped again in the
359
+ // meantime or runCronTasks may have flipped off.
360
+ if (state.runCronTasks || state.enforcedTasks.length > 0) {
361
+ ensureStarted();
362
+ }
363
+ })
364
+ .catch((err) => (0, OnError_1.onError)(err));
365
+ return;
366
+ }
367
+ if (!state.runner.hasSource(CRON_SOURCE_NAME)) {
368
+ state.runner.registerSource(CRON_SOURCE_NAME, {
369
+ minPollMs: 200,
370
+ maxPollMs: noTaskWaitTime,
371
+ jitterMs: 100,
372
+ });
332
373
  }
333
- if (!state.working) {
334
- debug('STARTING LOOP');
335
- runATask();
374
+ if (!state.runnerStarted) {
375
+ debug('STARTING RUNNER');
376
+ state.runnerStarted = true;
377
+ state.runner.start(() => runATask());
378
+ }
379
+ else {
380
+ state.runner.speedUp(CRON_SOURCE_NAME);
336
381
  }
337
- // else the loop is already set
338
382
  }
339
383
  function stopCronTasks() {
340
384
  debug('STOPPING CRON TASKS');
341
385
  state.runCronTasks = false;
342
- if (state.nextTaskTimeoutId) {
343
- clearTimeout(state.nextTaskTimeoutId);
386
+ if (state.runner && state.runnerStarted) {
387
+ state.runnerStarted = false;
388
+ // Fire and forget: the public API is synchronous (returns void).
389
+ // Any in-flight tasks will finish on their own; further polls will
390
+ // not happen because runnerStarted is already cleared. Track the
391
+ // stop promise so ensureStarted can chain on it if the caller
392
+ // restarts cron before teardown completes - see the race Copilot
393
+ // flagged on PR #460.
394
+ state.runnerStopPromise = state.runner.stop().catch((err) => {
395
+ (0, OnError_1.onError)(err);
396
+ });
344
397
  }
345
398
  }
346
399
  function startCronTasks() {
@@ -448,8 +501,10 @@ async function getCronTasksList(query = {}) {
448
501
  };
449
502
  }
450
503
  /**
451
- * Triggers a cron task immediately.
452
- * Alias for scheduleCronTaskImmediately but returns the new state or confirmation.
504
+ * @deprecated Alias for {@link scheduleCronTaskImmediately}. Prefer that name for
505
+ * clarity - it describes exactly what happens (the task is scheduled to run on
506
+ * the next polling tick, not necessarily this very millisecond). This alias will
507
+ * be removed in a future major version.
453
508
  */
454
509
  async function triggerCronTask(taskId) {
455
510
  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":";;;;;;;;;;;;;;AAgCA,oBAwBC;AA4ID,kCAaC;AAoSD,sCAeC;AAED,wCAKC;AAED,kEAQC;AAED,4BA2BC;AAKD,4CAqEC;AAQD,0CAEC;AAID,4DAEC;AAzoBD,yDAAsD;AACtD,iEAA8D;AAC9D,mDAAgD;AAChD,+CAA4C;AAE5C,uCAAoC;AACpC,qCAAkC;AAClC,mDAAyD;AAsBzD,SAAgB,IAAI,CAAC,OAAoB;IACrC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1C,IAAI,OAAO,CAAC,2BAA2B,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAChG,CAAC;IACD,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAC;IACxE,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC9C,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAE9C,mFAAmF;IACnF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,KAAK,CAAC,MAAM,GAAG,IAAI,mCAAgB,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC,CAAC;IAEhF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,IAAI,EAAE,8BAAsB,EAAE,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,aAAa,EAAE,CAAC;QACpB,CAAC;IACL,CAAC;AACL,CAAC;AAEY,QAAA,sBAAsB,GAAG,iBAAiB,CAAC;AAC3C,QAAA,uBAAuB,GAAG,kBAAkB,CAAC;AAC7C,QAAA,wBAAwB,GAAG,mBAAmB,CAAC;AAC/C,QAAA,qBAAqB,GAAG,gBAAgB,CAAC;AAEtD,+CAA+C;AAC/C,MAAM,KAAK,GAAG,CAAC,GAAG,KAAgB,EAAE,EAAE,GAAE,CAAC,CAAC;AA+C1C,MAAM,YAAY;IAOd,YACW,GAAW,EACX,QAAc;QADd,QAAG,GAAH,GAAG,CAAQ;QACX,aAAQ,GAAR,QAAQ,CAAM;QARlB,mBAAc,GAAG,KAAK,CAAC;QAEvB,WAAM,GAAkB,EAAE,CAAC;QAE3B,eAAU,GAAgB,IAAI,CAAC;IAKnC,CAAC;CACP;AAQD,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC;AAEhC,MAAM,KAAK,GAAG;IACV,KAAK,EAAE,IAAI,GAAG,EAAgB;IAE9B,gEAAgE;IAChE,gEAAgE;IAChE,sEAAsE;IACtE,gEAAgE;IAChE,sEAAsE;IACtE,8DAA8D;IAC9D,4DAA4D;IAC5D,0CAA0C;IAC1C,MAAM,EAA2B,IAAI;IACrC,aAAa,EAAE,KAAK;IACpB,iBAAiB,EAAwB,IAAI;IAE7C,WAAW,EAAmC,IAAI;IAElD,IAAI,UAAU;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACpB,IAAI,CAAC,WAAW,GAAG,IAAA,6BAAa,EAAe,WAAW,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAED,aAAa,EAAuB,EAAE;IAEtC,kBAAkB,EAA2B,IAAI;IAEjD,SAAS;IACT,YAAY,EAAE,KAAK;IACnB,2BAA2B,EAAyB,EAAE;IACtD,cAAc,EAAyB,IAAI;IAC3C,cAAc,EAAyB,IAAI;CAC9C,CAAC;AAEF,MAAM,gBAAgB,GAAG,aAAa,CAAC;AAUvC,8DAA8D;AAC9D,kCAAkC;AAClC,kCAAkC;AAClC,wBAAwB;AACxB,sBAAsB;AAEtB,SAAS,gCAAgC,CAAC,QAAwB;IAC9D,OAAO,IAAA,sCAAsB,EAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC;AAChG,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,gBAAkC;IAC5D,MAAM,SAAS,GAAmB,MAAM,gBAAgB,EAAE,CAAC;IAC3D,IAAI,SAAS,YAAY,IAAI,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,OAAO,gCAAgC,CAAC,SAAS,CAAC,EAAE,CAAC;AACzD,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,MAAc;;IAC5C,IAAI,MAAA,IAAI,KAAK,EAAE,CAAC,KAAK,0CAAE,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,6HAA6H,CAAC,CAAC;IACnJ,CAAC;IAED,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,IAAI,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtD,aAAa,EAAE,CAAC;IACpB,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,WAAW;IAChB,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC5B,KAAK,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;YACnC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;YAC/F,KAAK,CAAC,UAAU,CAAC,WAAW,CACxB,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,EAC5C,EAAE,IAAI,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAC9F;SACJ,CAAC,CAAC;IACP,CAAC;IACD,OAAO,KAAK,CAAC,kBAAkB,CAAC;AACpC,CAAC;AAED,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/B,SAAS,WAAW;IAChB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,SAAS,iBAAiB;IACtB,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;AAChF,CAAC;AAED,SAAS,uBAAuB;IAC5B,OAAO;QACH,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,cAAe,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,CAAC;KACtI,CAAC;AACN,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,YAAiC;IAC3D,IAAI,MAA4B,CAAC;IAEjC,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,CAAC,EAAE,CAAC;IAC3E,CAAC;SAAM,CAAC;QACJ,MAAM,GAAG;YACL,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,uBAAuB,EAAE,CAAC;SAC7G,CAAC;IACN,CAAC;IAED,KAAK,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAClD,MAAM,EACN;QACI,IAAI,EAAE;YACF,UAAU,EAAE,WAAW,EAAE;YACzB,cAAc,EAAE,KAAK;SACxB;QACD,KAAK,EAAE;YACH,MAAM,EAAE;gBACJ,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;gBACjE,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE;gBACxB,MAAM,EAAE,CAAC;aACZ;SACJ;KACJ,EACD;QACI,IAAI,EAAE;YACF,cAAc,EAAE,CAAC,CAAC,EAAE,2BAA2B;YAC/C,QAAQ,EAAE,CAAC,EAAE,4BAA4B;YACzC,qBAAqB,EAAE,CAAC,EAAE,8BAA8B;SAC3D;QACD,UAAU,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE;QAC/C,qBAAqB,EAAE,IAAI;KACO,CACzC,CAAC;IAEF,8BAA8B;IAC9B,MAAM,QAAQ,GAAI,MAA4C,CAAC,KAAK,CAAC;IAErE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,IAAI,YAAY,EAAE,CAAC;YACf,YAAY,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,6EAA6E;QAC7E,6DAA6D;QAC7D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACvF,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAC5B,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EACrB;YACI,IAAI,kBACA,UAAU,EAAE,IAAI,IACb,oBAAoB,CAC1B;YACD,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,qCAAqC;SAC9D,CACJ,CAAC;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAE,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAU,EAAE,YAAiC;IACpE,MAAM,kBAAkB,GAAG,IAAA,2CAAoB,EAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEvG,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;QAC9B,KAAK,CAAC,mBAAmB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,IAAI,SAAS,GAAiB,IAAI,CAAC;QACnC,IAAI,WAAiB,CAAC;QACtB,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAE7B,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,CAAC;YACD,SAAS,yBAAyB;gBAC9B,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,MAAM,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,8BAAsB,EAAE,CAAC,CAAC;gBAC9G,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,yBAAyB,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9C,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,MAAM,iBAAiB,QAAQ,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,+BAAuB,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YAC9D,IAAA,eAAM,EAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,MAAM,eAAe,QAAQ,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,6BAAqB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAChJ,SAAS,GAAG,GAAY,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC;YACD,MAAM,kBAAkB,EAAE,CAAC,CAAC,mEAAmE;YAE/F,WAAW,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1D,KAAK,CAAC,mBAAmB,IAAI,CAAC,MAAM,cAAc,WAAW,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAE3F,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAC5B,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,EACpB;gBACI,IAAI,EAAE;oBACF,QAAQ,EAAE,WAAW;oBACrB,UAAU,EAAE,IAAI;oBAChB,gBAAgB,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI;oBACpD,qBAAqB,EAAE,IAAI,IAAI,EAAE;iBACpC;aACJ,CACJ,CAAC;YAEF,gBAAgB,GAAG,IAAI,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACP,IAAI,YAAY,EAAE,CAAC;gBACf,IAAI,SAAS,EAAE,CAAC;oBACZ,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACJ,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC3B,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACnB,IAAA,iBAAO,EAAC,SAAS,CAAC,CAAC;YACvB,CAAC;YAED,mDAAmD;YACnD,IAAI,gBAAgB,EAAE,CAAC;gBACnB,IAAA,eAAM,EAAC;oBACH,OAAO,EAAE,cAAc,IAAI,CAAC,MAAM,kBAAkB,WAAY,CAAC,WAAW,EAAE,GAAG;oBACjF,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,IAAI,EAAE,gCAAwB;oBAC9B,WAAW,EAAE,IAAI,IAAI,CAAC,WAAY,CAAC,WAAW,EAAE,CAAC;iBACpD,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,cAAe,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,qCAAqC;QACrC,gEAAgE;QAChE,MAAM,kBAAkB,EAAE,CAAC;QAC3B,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC;IAC1B,CAAC;AACL,CAAC;AAED,uBAAuB;AACvB,KAAK,UAAU,qBAAqB;IAChC,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE;YACvE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC3B,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,cAAc,CAAC;QAC1B,CAAC;QAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAA,iBAAO,EAAC,KAAc,CAAC,CAAC;QACxB,OAAO,cAAc,CAAC;IAC1B,CAAC;AACL,CAAC;AAED,0EAA0E;AAC1E,sEAAsE;AACtE,6DAA6D;AAC7D,0EAA0E;AAC1E,yEAAyE;AACzE,qEAAqE;AACrE,qEAAqE;AACrE,sCAAsC;AAEtC,KAAK,UAAU,QAAQ;;IACnB,MAAM,yBAAW,CAAC;IAClB,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;IACzD,IAAI,IAAI,GAAgB,IAAI,CAAC;IAE7B,IAAI,CAAC;QACD,IAAI,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,KAAK,CAAC,uBAAuB,CAAC,CAAC;YAC/B,OAAO;QACX,CAAC;QAED,MAAM,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACtC,mEAAmE;QACnE,uDAAuD;QACvD,MAAA,KAAK,CAAC,MAAM,0CAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;QAC9B,IAAI,YAAY,EAAE,CAAC;YACf,YAAY,CAAC,MAAM,CAAC,KAAc,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACJ,IAAA,iBAAO,EAAC,KAAc,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;YAAS,CAAC;QACP,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnF,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,qBAAqB,EAAE,CAAC;gBAC7C,yDAAyD;gBACzD,yDAAyD;gBACzD,uDAAuD;gBACvD,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;YACrE,CAAC;iBAAM,CAAC;gBACJ,wDAAwD;gBACxD,yDAAyD;gBACzD,iDAAiD;gBACjD,2CAA2C;gBAC3C,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC5B,2DAA2D;gBAC3D,4DAA4D;gBAC5D,gDAAgD;gBAChD,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACxD,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC;AAED,SAAS,aAAa;IAClB,mEAAmE;IACnE,kEAAkE;IAClE,8DAA8D;IAC9D,4CAA4C;IAC5C,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC;QACxC,OAAO;aACF,IAAI,CAAC,GAAG,EAAE;YACP,IAAI,KAAK,CAAC,iBAAiB,KAAK,OAAO,EAAE,CAAC;gBACtC,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC;YACnC,CAAC;YACD,uDAAuD;YACvD,iDAAiD;YACjD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvD,aAAa,EAAE,CAAC;YACpB,CAAC;QACL,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC,CAAC;QAC3C,OAAO;IACX,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7C,KAAK,CAAC,MAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE;YAC3C,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,GAAG;SAChB,CAAC,CAAC;IACP,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACvB,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,MAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,MAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC;AACL,CAAC;AAED,SAAgB,aAAa;IACzB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC7B,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACtC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;QAC5B,iEAAiE;QACjE,mEAAmE;QACnE,iEAAiE;QACjE,8DAA8D;QAC9D,iEAAiE;QACjE,sBAAsB;QACtB,KAAK,CAAC,iBAAiB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxD,IAAA,iBAAO,EAAC,GAAY,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACP,CAAC;AACL,CAAC;AAED,SAAgB,cAAc;IAC1B,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IAC1B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,aAAa,EAAE,CAAC;IACpB,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAAC,MAAc;IAC5D,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAC/G,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,kBAAkB,CAAC,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,aAAa,EAAE,CAAC;IACpB,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,QAAkB,EAAE,IAAkB;IACjF,MAAM,yBAAW,CAAC;IAElB,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,eAAe,MAAM,oBAAoB,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC,CAAC,QAAQ,CAAC,CAAC;IAChH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,KAA2B,QAAQ,EAA9B,iBAAiB,UAAK,QAAQ,EAAxC,OAA6B,CAAW,CAAC;IAC/C,MAAM,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/G,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;QACpB,MAAM;QACN,IAAI;QACJ,gBAAgB;KACnB,CAAC,CAAC;IACH,KAAK,CAAC,QAAQ,MAAM,sBAAsB,CAAC,CAAC;IAE5C,MAAM,WAAW,EAAE,CAAC;IAEpB,sEAAsE;IACtE,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QACrB,aAAa,EAAE,CAAC;IACpB,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,QAAuB,EAAE;;IAC5D,MAAM,KAAK,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,CAAC,CAAC;IAE7B,IAAI,SAAS,GAAG,CAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,KAAK,KAAI,UAAU,CAAC;IAChD,IAAI,SAAS,KAAK,WAAW;QAAE,SAAS,GAAG,UAAU,CAAC;IACtD,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,MAAA,MAAA,KAAK,CAAC,IAAI,0CAAE,SAAS,mCAAI,CAAC,EAA4B,CAAC;IAEnF,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAElD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC5C,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAyB;QACjC,GAAG,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;KAC7B,CAAC;IAEF,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE;QAC1E,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC;KAC1C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;QACtC,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,IAAI,OAAO,EAAE,CAAC;YACV,WAAW,GAAG;gBACV,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;aAC1G,CAAC;QACN,CAAC;QAED,IAAI,MAAM,GAAmB,MAAM,CAAC;QACpC,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,GAAG,QAAQ,CAAC;YAClB,4FAA4F;YAC5F,kDAAkD;YAClD,2FAA2F;YAC3F,gDAAgD;YAChD,MAAM,GAAG,SAAS,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,CAAC,cAAc,EAAE,CAAC;YAC5B,MAAM,GAAG,WAAW,CAAC;QACzB,CAAC;aAAM,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE,CAAC;YACxB,iEAAiE;YACjE,MAAM,GAAG,QAAQ,CAAC;QACtB,CAAC;QAED,OAAO;YACH,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,MAAM;YACN,SAAS,EAAE,GAAG,CAAC,QAAQ;YACvB,cAAc,EAAE,GAAG,CAAC,cAAc;YAClC,UAAU,EAAE,GAAG,CAAC,UAAU;YAC1B,OAAO,EAAE,WAAW;YACpB,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;SACzC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,KAAK;QACL,KAAK;QACL,KAAK;QACL,MAAM,EAAE,IAAI;KACf,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,eAAe,CAAC,MAAc;IAChD,OAAO,2BAA2B,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AACD;;GAEG;AACH,SAAgB,wBAAwB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC"}
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.getRegisteredCronTaskIds = 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");
@@ -31,6 +31,7 @@ Object.defineProperty(exports, "CODE_CRON_TASK_SCHEDULED", { enumerable: true, g
31
31
  Object.defineProperty(exports, "CODE_CRON_TASK_STARTED", { enumerable: true, get: function () { return cronTasks_2.CODE_CRON_TASK_STARTED; } });
32
32
  Object.defineProperty(exports, "cronTask", { enumerable: true, get: function () { return cronTasks_2.cronTask; } });
33
33
  Object.defineProperty(exports, "getCronTasksList", { enumerable: true, get: function () { return cronTasks_2.getCronTasksList; } });
34
+ Object.defineProperty(exports, "getRegisteredCronTaskIds", { enumerable: true, get: function () { return cronTasks_2.getRegisteredCronTaskIds; } });
34
35
  Object.defineProperty(exports, "runCronTask", { enumerable: true, get: function () { return cronTasks_2.runCronTask; } });
35
36
  Object.defineProperty(exports, "scheduleCronTaskImmediately", { enumerable: true, get: function () { return cronTasks_2.scheduleCronTaskImmediately; } });
36
37
  Object.defineProperty(exports, "startCronTasks", { enumerable: true, get: function () { return cronTasks_2.startCronTasks; } });
@@ -43,9 +44,12 @@ Object.defineProperty(exports, "getMongoClient", { enumerable: true, get: functi
43
44
  var processInBatches_1 = require("./processInBatches");
44
45
  Object.defineProperty(exports, "processInBatches", { enumerable: true, get: function () { return processInBatches_1.processInBatches; } });
45
46
  var reactiveTasks_2 = require("./reactiveTasks");
47
+ Object.defineProperty(exports, "CODE_REACTIVE_TASK_CLEANUP", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_CLEANUP; } });
46
48
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_FAILED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_FAILED; } });
47
49
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_FINISHED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_FINISHED; } });
50
+ Object.defineProperty(exports, "CODE_REACTIVE_TASK_INITIALIZED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_INITIALIZED; } });
48
51
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_LEADER_LOCK_LOST", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_LEADER_LOCK_LOST; } });
52
+ Object.defineProperty(exports, "CODE_REACTIVE_TASK_LOCK_LOST", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_LOCK_LOST; } });
49
53
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_FINISHED; } });
50
54
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_RECONCILIATION_STARTED; } });
51
55
  Object.defineProperty(exports, "CODE_REACTIVE_TASK_PLANNER_STARTED", { enumerable: true, get: function () { return reactiveTasks_2.CODE_REACTIVE_TASK_PLANNER_STARTED; } });
@@ -74,7 +78,7 @@ Object.defineProperty(exports, "registerPostCommitHook", { enumerable: true, get
74
78
  Object.defineProperty(exports, "withTransaction", { enumerable: true, get: function () { return withTransaction_1.withTransaction; } });
75
79
  let initCalled = false;
76
80
  async function init(options) {
77
- var _a, _b, _c, _d, _e, _f, _g;
81
+ var _a, _b, _c, _d, _e, _f, _g, _h;
78
82
  if (initCalled) {
79
83
  throw new Error('init method can be called only once.');
80
84
  }
@@ -101,11 +105,12 @@ async function init(options) {
101
105
  (0, withLock_1.reset)();
102
106
  (0, cronTasks_1.init)({
103
107
  runCronTasks: (_c = options.runCronTasks) !== null && _c !== void 0 ? _c : true,
104
- cronExpressionParserOptions: (_d = options.cronExpressionParserOptions) !== null && _d !== void 0 ? _d : {},
105
- cronTaskCaller: (_e = options.cronTaskCaller) !== null && _e !== void 0 ? _e : taskCaller,
106
- cronTaskFilter: (_f = options.cronTaskFilter) !== null && _f !== void 0 ? _f : (() => true),
108
+ cronTaskConcurrency: (_d = options.cronTaskConcurrency) !== null && _d !== void 0 ? _d : 1,
109
+ cronExpressionParserOptions: (_e = options.cronExpressionParserOptions) !== null && _e !== void 0 ? _e : {},
110
+ cronTaskCaller: (_f = options.cronTaskCaller) !== null && _f !== void 0 ? _f : taskCaller,
111
+ cronTaskFilter: (_g = options.cronTaskFilter) !== null && _g !== void 0 ? _g : (() => true),
107
112
  });
108
- (0, reactiveTasks_1.init)(Object.assign(Object.assign({}, options), { globalsCollection: globalsCollection, reactiveTaskCaller: (_g = options.reactiveTaskCaller) !== null && _g !== void 0 ? _g : taskCaller }));
113
+ (0, reactiveTasks_1.init)(Object.assign(Object.assign({}, options), { globalsCollection: globalsCollection, reactiveTaskCaller: (_h = options.reactiveTaskCaller) !== null && _h !== void 0 ? _h : taskCaller }));
109
114
  (0, initPromise_1.resolveInitPromise)();
110
115
  }
111
116
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAiFA,oBA6CC;AA7HD,2CAAyF;AACzF,mDAAiJ;AACjJ,qDAAqG;AAErG,+CAAmD;AACnD,uCAAsE;AACtE,qCAAkE;AAClE,mDAAqG;AACrG,yCAAoD;AACpD,yCAmBqB;AAlBjB,kHAAA,qBAAqB,OAAA;AACrB,oHAAA,uBAAuB,OAAA;AACvB,qHAAA,wBAAwB,OAAA;AACxB,mHAAA,sBAAsB,OAAA;AAEtB,qGAAA,QAAQ,OAAA;AAIR,6GAAA,gBAAgB,OAAA;AAEhB,wGAAA,WAAW,OAAA;AACX,wHAAA,2BAA2B,OAAA;AAC3B,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AAGb,4GAAA,eAAe,OAAA;AAEnB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AAEvB,uDAAuG;AAA9F,oHAAA,gBAAgB,OAAA;AACzB,iDAqByB;AApBrB,0HAAA,yBAAyB,OAAA;AACzB,4HAAA,2BAA2B,OAAA;AAC3B,oIAAA,mCAAmC,OAAA;AACnC,mJAAA,kDAAkD,OAAA;AAClD,kJAAA,iDAAiD,OAAA;AACjD,mIAAA,kCAAkC,OAAA;AAClC,mIAAA,kCAAkC,OAAA;AAClC,wIAAA,uCAAuC,OAAA;AACvC,2HAAA,0BAA0B,OAAA;AAC1B,mHAAA,kBAAkB,OAAA;AAClB,qHAAA,oBAAoB,OAAA;AACpB,iHAAA,gBAAgB,OAAA;AAChB,6GAAA,YAAY,OAAA;AAGZ,mHAAA,kBAAkB,OAAA;AAClB,mHAAA,kBAAkB,OAAA;AAClB,kHAAA,iBAAiB,OAAA;AACjB,yHAAA,wBAAwB,OAAA;AACxB,2GAAA,UAAU,OAAA;AAEd,qDAA8E;AAArE,4HAAA,yBAAyB,OAAA;AAAE,iHAAA,cAAc,OAAA;AAClD,4CAA0B;AAC1B,uCAA6G;AAApG,sHAAA,0BAA0B,OAAA;AAAE,oHAAA,wBAAwB,OAAA;AAAE,oGAAA,QAAQ,OAAA;AACvE,qDAA4F;AAAnE,yHAAA,sBAAsB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAEhE,IAAI,UAAU,GAAG,KAAK,CAAC;AAoBhB,KAAK,UAAU,IAAI,CAAC,OAAoB;;IAC3C,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;IACD,UAAU,GAAG,IAAI,CAAC;IAElB,gEAAgE;IAChE,kDAAkD;IAClD,IAAA,0BAAgB,EAAC,OAAO,CAAC,OAAO,IAAI,wBAAc,CAAC,CAAC;IACpD,IAAA,wBAAe,EAAC,OAAO,CAAC,MAAM,IAAI,sBAAa,CAAC,CAAC;IAEjD,0EAA0E;IAC1E,qEAAqE;IACrE,gFAAgF;IAChF,kDAAkD;IAElD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IAE5D,MAAM,IAAA,qBAAe,EAAC,OAAO,CAAC,CAAC;IAE/B,IAAA,qBAAkB,GAAE,CAAC,CAAC,qBAAqB;IAC3C,IAAA,oBAAiB,EAAC,EAAE,iBAAiB,EAAE,MAAA,OAAO,CAAC,iBAAiB,mCAAI,IAAI,EAAE,CAAC,CAAC;IAE5E,IAAI,iBAAoC,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,OAAO,OAAO,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAC9E,iBAAiB,GAAG,IAAA,6BAAa,EAAC,MAAA,OAAO,CAAC,iBAAiB,mCAAI,oBAAoB,CAAiC,CAAC;IACzH,CAAC;SAAM,CAAC;QACJ,iBAAiB,GAAG,OAAO,CAAC,iBAAiD,CAAC;IAClF,CAAC;IAED,IAAA,gBAAa,GAAE,CAAC;IAEhB,IAAA,gBAAa,EAAC;QACV,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,IAAI;QAC1C,2BAA2B,EAAE,MAAA,OAAO,CAAC,2BAA2B,mCAAI,EAAE;QACtE,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,UAAU;QACpD,cAAc,EAAE,MAAA,OAAO,CAAC,cAAc,mCAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KACzD,CAAC,CAAC;IACH,IAAA,oBAAiB,kCACV,OAAO,KACV,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,MAAA,OAAO,CAAC,kBAAkB,mCAAI,UAAU,IAC9D,CAAC;IAEH,IAAA,gCAAkB,GAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}