@dbos-inc/dbos-sdk 3.0.27-preview → 3.0.35-preview

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 (65) hide show
  1. package/dist/src/datasource.d.ts +11 -6
  2. package/dist/src/datasource.d.ts.map +1 -1
  3. package/dist/src/datasource.js +9 -6
  4. package/dist/src/datasource.js.map +1 -1
  5. package/dist/src/dbos-executor.d.ts +51 -89
  6. package/dist/src/dbos-executor.d.ts.map +1 -1
  7. package/dist/src/dbos-executor.js +61 -284
  8. package/dist/src/dbos-executor.js.map +1 -1
  9. package/dist/src/dbos-runtime/config.d.ts +6 -4
  10. package/dist/src/dbos-runtime/config.d.ts.map +1 -1
  11. package/dist/src/dbos-runtime/config.js +59 -28
  12. package/dist/src/dbos-runtime/config.js.map +1 -1
  13. package/dist/src/dbos-runtime/migrate.js +3 -3
  14. package/dist/src/dbos-runtime/migrate.js.map +1 -1
  15. package/dist/src/dbos-runtime/runtime.d.ts +1 -1
  16. package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
  17. package/dist/src/dbos-runtime/runtime.js +4 -14
  18. package/dist/src/dbos-runtime/runtime.js.map +1 -1
  19. package/dist/src/dbos.d.ts +27 -65
  20. package/dist/src/dbos.d.ts.map +1 -1
  21. package/dist/src/dbos.js +107 -122
  22. package/dist/src/dbos.js.map +1 -1
  23. package/dist/src/decorators.d.ts +51 -57
  24. package/dist/src/decorators.d.ts.map +1 -1
  25. package/dist/src/decorators.js +234 -200
  26. package/dist/src/decorators.js.map +1 -1
  27. package/dist/src/httpServer/handler.d.ts +1 -1
  28. package/dist/src/httpServer/handler.d.ts.map +1 -1
  29. package/dist/src/httpServer/handler.js +1 -1
  30. package/dist/src/httpServer/handler.js.map +1 -1
  31. package/dist/src/httpServer/middleware.d.ts +0 -1
  32. package/dist/src/httpServer/middleware.d.ts.map +1 -1
  33. package/dist/src/httpServer/middleware.js.map +1 -1
  34. package/dist/src/httpServer/server.d.ts.map +1 -1
  35. package/dist/src/httpServer/server.js +4 -6
  36. package/dist/src/httpServer/server.js.map +1 -1
  37. package/dist/src/index.d.ts +3 -5
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +7 -12
  40. package/dist/src/index.js.map +1 -1
  41. package/dist/src/paramdecorators.d.ts +6 -6
  42. package/dist/src/paramdecorators.d.ts.map +1 -1
  43. package/dist/src/paramdecorators.js.map +1 -1
  44. package/dist/src/scheduler/crontab.d.ts +3 -8
  45. package/dist/src/scheduler/crontab.d.ts.map +1 -1
  46. package/dist/src/scheduler/crontab.js +24 -23
  47. package/dist/src/scheduler/crontab.js.map +1 -1
  48. package/dist/src/scheduler/scheduler.d.ts +10 -31
  49. package/dist/src/scheduler/scheduler.d.ts.map +1 -1
  50. package/dist/src/scheduler/scheduler.js +100 -135
  51. package/dist/src/scheduler/scheduler.js.map +1 -1
  52. package/dist/src/system_database.d.ts +5 -6
  53. package/dist/src/system_database.d.ts.map +1 -1
  54. package/dist/src/system_database.js +14 -1
  55. package/dist/src/system_database.js.map +1 -1
  56. package/dist/src/utils.d.ts.map +1 -1
  57. package/dist/src/utils.js +14 -4
  58. package/dist/src/utils.js.map +1 -1
  59. package/dist/tsconfig.tsbuildinfo +1 -1
  60. package/eslint.config.cjs +6 -1
  61. package/package.json +1 -1
  62. package/dist/src/eventreceiver.d.ts +0 -152
  63. package/dist/src/eventreceiver.d.ts.map +0 -1
  64. package/dist/src/eventreceiver.js +0 -3
  65. package/dist/src/eventreceiver.js.map +0 -1
@@ -6,14 +6,9 @@ export declare function convertAsterisksToRanges(expressions: string[]): string[
6
6
  export declare function validateCrontab(pattern: string): string;
7
7
  export declare function convertExpression(crontab: string): string;
8
8
  export declare class TimeMatcher {
9
- pattern: string;
10
- expressions: string[];
11
- dtf: Intl.DateTimeFormat | null;
12
- timezone?: string;
9
+ #private;
13
10
  constructor(pattern: string, timezone?: string);
14
- match(date: Date): boolean;
15
- private runsThisDay;
16
- nextWakeupTime(date: Date): Date;
17
- apply(date: Date): Date;
11
+ match(date: Date | number): boolean;
12
+ nextWakeupTime(date: Date | number): Date;
18
13
  }
19
14
  //# sourceMappingURL=crontab.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"crontab.d.ts","sourceRoot":"","sources":["../../../src/scheduler/crontab.ts"],"names":[],"mappings":"AAmFA,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,YAQ7D;AA2HD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,UAW9C;AAmBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAYhD;AAeD,qBAAa,WAAW;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEN,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAoB9C,KAAK,CAAC,IAAI,EAAE,IAAI;IAWhB,OAAO,CAAC,WAAW;IAQnB,cAAc,CAAC,IAAI,EAAE,IAAI;IAYzB,KAAK,CAAC,IAAI,EAAE,IAAI;CAOjB"}
1
+ {"version":3,"file":"crontab.d.ts","sourceRoot":"","sources":["../../../src/scheduler/crontab.ts"],"names":[],"mappings":"AAmFA,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,YAQ7D;AA2HD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,UAW9C;AAmBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,UAYhD;AAeD,qBAAa,WAAW;;gBAMV,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAoB9C,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAmBzB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;CAoBnC"}
@@ -247,16 +247,16 @@ function matchPattern(pattern, nvalue) {
247
247
  return pattern === value;
248
248
  }
249
249
  class TimeMatcher {
250
- pattern;
251
- expressions;
252
- dtf;
253
- timezone;
250
+ #pattern;
251
+ #expressions;
252
+ #dtf;
253
+ #timezone;
254
254
  constructor(pattern, timezone) {
255
255
  validateCrontab(pattern);
256
- this.pattern = convertExpression(pattern);
257
- this.timezone = timezone;
258
- this.expressions = this.pattern.split(' ');
259
- this.dtf = this.timezone
256
+ this.#pattern = convertExpression(pattern);
257
+ this.#timezone = timezone;
258
+ this.#expressions = this.#pattern.split(' ');
259
+ this.#dtf = this.#timezone
260
260
  ? new Intl.DateTimeFormat('en-US', {
261
261
  year: 'numeric',
262
262
  month: '2-digit',
@@ -266,27 +266,28 @@ class TimeMatcher {
266
266
  second: '2-digit',
267
267
  hourCycle: 'h23',
268
268
  fractionalSecondDigits: 3,
269
- timeZone: this.timezone,
269
+ timeZone: this.#timezone,
270
270
  })
271
271
  : null;
272
272
  }
273
273
  match(date) {
274
- date = this.apply(date);
275
- const runOnSecond = matchPattern(this.expressions[0], date.getSeconds());
276
- const runOnMinute = matchPattern(this.expressions[1], date.getMinutes());
277
- const runOnHour = matchPattern(this.expressions[2], date.getHours());
278
- const runOnDay = this.runsThisDay(date);
274
+ date = this.#apply(date);
275
+ const runOnSecond = matchPattern(this.#expressions[0], date.getSeconds());
276
+ const runOnMinute = matchPattern(this.#expressions[1], date.getMinutes());
277
+ const runOnHour = matchPattern(this.#expressions[2], date.getHours());
278
+ const runOnDay = this.#runsThisDay(date);
279
279
  return runOnSecond && runOnMinute && runOnHour && runOnDay;
280
280
  }
281
- runsThisDay(date) {
282
- const runOnDay = matchPattern(this.expressions[3], date.getDate());
283
- const runOnMonth = matchPattern(this.expressions[4], date.getMonth() + 1);
284
- const runOnWeekDay = matchPattern(this.expressions[5], date.getDay());
281
+ #runsThisDay(date) {
282
+ const runOnDay = matchPattern(this.#expressions[3], date.getDate());
283
+ const runOnMonth = matchPattern(this.#expressions[4], date.getMonth() + 1);
284
+ const runOnWeekDay = matchPattern(this.#expressions[5], date.getDay());
285
285
  return runOnDay && runOnMonth && runOnWeekDay;
286
286
  }
287
287
  nextWakeupTime(date) {
288
288
  // This is conservative. Some schedules never occur, such as the 30th of February, but you can ask for them
289
- let msec = Math.round(date.getTime());
289
+ const time = typeof date === 'number' ? date : date.getTime();
290
+ let msec = Math.round(time);
290
291
  // This can be optimized by skipping ahead, but unit test first
291
292
  for (let maxIters = 3600; --maxIters; maxIters > 0) {
292
293
  msec += 1000;
@@ -296,11 +297,11 @@ class TimeMatcher {
296
297
  }
297
298
  return new Date(msec);
298
299
  }
299
- apply(date) {
300
- if (this.dtf) {
301
- return new Date(this.dtf.format(date));
300
+ #apply(date) {
301
+ if (this.#dtf) {
302
+ return new Date(this.#dtf.format(date));
302
303
  }
303
- return date;
304
+ return typeof date === 'number' ? new Date(date) : date;
304
305
  }
305
306
  }
306
307
  exports.TimeMatcher = TimeMatcher;
@@ -1 +1 @@
1
- {"version":3,"file":"crontab.js","sourceRoot":"","sources":["../../../src/scheduler/crontab.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crontab.js","sourceRoot":"","sources":["../../../src/scheduler/crontab.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { DBOSExecutor } from '../dbos-executor';
2
- import { MethodRegistrationBase } from '../decorators';
1
+ import { DBOSLifecycleCallback, FunctionName } from '../decorators';
3
2
  /**
4
3
  * Choices for scheduler mode for `@DBOS.scheduled` workflows
5
4
  */
@@ -19,8 +18,8 @@ export declare enum SchedulerMode {
19
18
  /**
20
19
  * Configuration for a `@DBOS.scheduled` workflow
21
20
  */
22
- export declare class SchedulerConfig {
23
- /** Schedule, in 5- or 6-spot crontab format; defaults to scheduling every minute */
21
+ export interface SchedulerConfig {
22
+ /** Schedule, in 5- or 6-spot crontab format */
24
23
  crontab: string;
25
24
  /**
26
25
  * Indicates whether or not to retroactively start workflows that were scheduled during
@@ -31,32 +30,12 @@ export declare class SchedulerConfig {
31
30
  queueName?: string;
32
31
  }
33
32
  export type ScheduledArgs = [Date, Date];
34
- export interface SchedulerRegistrationBase extends MethodRegistrationBase {
35
- schedulerConfig?: SchedulerConfig;
33
+ export declare class ScheduledReceiver implements DBOSLifecycleCallback {
34
+ #private;
35
+ constructor();
36
+ initialize(): Promise<void>;
37
+ destroy(): Promise<void>;
38
+ logRegisteredEndpoints(): void;
39
+ static registerScheduled<This, Return>(func: (this: This, ...args: ScheduledArgs) => Promise<Return>, config: SchedulerConfig & FunctionName): void;
36
40
  }
37
- export declare class DBOSScheduler {
38
- readonly dbosExec: DBOSExecutor;
39
- constructor(dbosExec: DBOSExecutor);
40
- schedLoops: DetachableLoop[];
41
- schedTasks: Promise<void>[];
42
- initScheduler(): void;
43
- destroyScheduler(): Promise<void>;
44
- logRegisteredSchedulerEndpoints(): void;
45
- }
46
- declare class DetachableLoop {
47
- readonly dbosExec: DBOSExecutor;
48
- readonly crontab: string;
49
- readonly schedMode: SchedulerMode;
50
- readonly scheduledMethod: SchedulerRegistrationBase;
51
- readonly queueName?: string | undefined;
52
- private isRunning;
53
- private interruptResolve?;
54
- private lastExec;
55
- private timeMatcher;
56
- private scheduledMethodName;
57
- constructor(dbosExec: DBOSExecutor, crontab: string, schedMode: SchedulerMode, scheduledMethod: SchedulerRegistrationBase, queueName?: string | undefined);
58
- startLoop(): Promise<void>;
59
- setStopLoopFlag(): void;
60
- }
61
- export {};
62
41
  //# sourceMappingURL=scheduler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAsB,MAAM,eAAe,CAAC;AAO3E;;GAEG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,sBAAsB,2BAA2B;IACjD;;;;OAIG;IACH,gCAAgC,qCAAqC;CACtE;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAe;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAkD;IACtE,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAEzC,MAAM,WAAW,yBAA0B,SAAQ,sBAAsB;IACvE,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAMD,qBAAa,aAAa;IACZ,QAAQ,CAAC,QAAQ,EAAE,YAAY;gBAAtB,QAAQ,EAAE,YAAY;IAI3C,UAAU,EAAE,cAAc,EAAE,CAAM;IAClC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAM;IAEjC,aAAa;IAiBP,gBAAgB;IAatB,+BAA+B;CAWhC;AAID,cAAM,cAAc;IAQhB,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,SAAS,EAAE,aAAa;IACjC,QAAQ,CAAC,eAAe,EAAE,yBAAyB;IACnD,QAAQ,CAAC,SAAS,CAAC;IAXrB,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAO;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,mBAAmB,CAAS;gBAGzB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,EACxB,eAAe,EAAE,yBAAyB,EAC1C,SAAS,CAAC,oBAAQ;IAQvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAwFhC,eAAe;CAOhB"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAA0B,MAAM,eAAe,CAAC;AAO5F;;GAEG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,sBAAsB,2BAA2B;IACjD;;;;OAIG;IACH,gCAAgC,qCAAqC;CACtE;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,mGAAmG;IACnG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AASzC,qBAAa,iBAAkB,YAAW,qBAAqB;;;IASvD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B3B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,sBAAsB,IAAI,IAAI;IAuG9B,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EACnC,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,EAC7D,MAAM,EAAE,eAAe,GAAG,YAAY;CAazC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DBOSScheduler = exports.SchedulerConfig = exports.SchedulerMode = void 0;
3
+ exports.ScheduledReceiver = exports.SchedulerMode = void 0;
4
4
  const __1 = require("..");
5
5
  const crontab_1 = require("./crontab");
6
6
  ////
@@ -23,168 +23,133 @@ var SchedulerMode;
23
23
  */
24
24
  SchedulerMode["ExactlyOncePerIntervalWhenActive"] = "ExactlyOncePerIntervalWhenActive";
25
25
  })(SchedulerMode || (exports.SchedulerMode = SchedulerMode = {}));
26
- /**
27
- * Configuration for a `@DBOS.scheduled` workflow
28
- */
29
- class SchedulerConfig {
30
- /** Schedule, in 5- or 6-spot crontab format; defaults to scheduling every minute */
31
- crontab = '* * * * *';
32
- /**
33
- * Indicates whether or not to retroactively start workflows that were scheduled during
34
- * times when the app was not running. @see `SchedulerMode`.
35
- */
36
- mode = SchedulerMode.ExactlyOncePerIntervalWhenActive;
37
- /** If set, workflows will be enqueued on the named queue, rather than being started immediately */
38
- queueName;
39
- }
40
- exports.SchedulerConfig = SchedulerConfig;
41
26
  ///////////////////////////
42
27
  // Scheduler Management
43
28
  ///////////////////////////
44
- class DBOSScheduler {
45
- dbosExec;
46
- constructor(dbosExec) {
47
- this.dbosExec = dbosExec;
48
- dbosExec.scheduler = this;
29
+ const SCHEDULER_EVENT_SERVICE_NAME = 'dbos.scheduler';
30
+ class ScheduledReceiver {
31
+ #controller = new AbortController();
32
+ #disposables = new Array();
33
+ constructor() {
34
+ __1.DBOS.registerLifecycleCallback(this);
49
35
  }
50
- schedLoops = [];
51
- schedTasks = [];
52
- initScheduler() {
53
- for (const registeredOperation of this.dbosExec.registeredOperations) {
54
- const ro = registeredOperation;
55
- if (ro.schedulerConfig) {
56
- const loop = new DetachableLoop(this.dbosExec, ro.schedulerConfig.crontab ?? '* * * * *', ro.schedulerConfig.mode ?? SchedulerMode.ExactlyOncePerInterval, ro, ro.schedulerConfig?.queueName);
57
- this.schedLoops.push(loop);
58
- this.schedTasks.push(loop.startLoop());
36
+ // eslint-disable-next-line @typescript-eslint/require-await
37
+ async initialize() {
38
+ for (const regOp of __1.DBOS.getAssociatedInfo(SCHEDULER_EVENT_SERVICE_NAME)) {
39
+ if (regOp.methodReg.registeredFunction === undefined) {
40
+ __1.DBOS.logger.warn(`Scheduled workflow ${regOp.methodReg.className}.${regOp.methodReg.name} is missing registered function; skipping`);
41
+ continue;
42
+ }
43
+ const { crontab, mode, queueName } = regOp.methodConfig;
44
+ if (!crontab) {
45
+ __1.DBOS.logger.warn(`Scheduled workflow ${regOp.methodReg.className}.${regOp.methodReg.name} is missing crontab; skipping`);
46
+ continue;
59
47
  }
48
+ const timeMatcher = new crontab_1.TimeMatcher(crontab);
49
+ const promise = ScheduledReceiver.#schedulerLoop(regOp.methodReg, timeMatcher, mode ?? SchedulerMode.ExactlyOncePerIntervalWhenActive, queueName, this.#controller.signal);
50
+ this.#disposables.push(promise);
60
51
  }
61
52
  }
62
- async destroyScheduler() {
63
- for (const l of this.schedLoops) {
64
- l.setStopLoopFlag();
65
- }
66
- this.schedLoops = [];
67
- try {
68
- await Promise.allSettled(this.schedTasks);
69
- }
70
- catch (e) {
71
- // What gets caught here is the loop stopping, which is what we wanted.
72
- }
73
- this.schedTasks = [];
53
+ async destroy() {
54
+ this.#controller.abort();
55
+ const promises = this.#disposables.splice(0);
56
+ await Promise.allSettled(promises);
74
57
  }
75
- logRegisteredSchedulerEndpoints() {
58
+ logRegisteredEndpoints() {
76
59
  __1.DBOS.logger.info('Scheduled endpoints:');
77
- this.dbosExec.registeredOperations.forEach((registeredOperation) => {
78
- const ro = registeredOperation;
79
- if (ro.schedulerConfig) {
80
- __1.DBOS.logger.info(` ${ro.name} @ ${ro.schedulerConfig.crontab}; ${ro.schedulerConfig.mode ?? SchedulerMode.ExactlyOncePerInterval}`);
60
+ for (const regOp of __1.DBOS.getAssociatedInfo(SCHEDULER_EVENT_SERVICE_NAME)) {
61
+ const name = `${regOp.methodReg.className}.${regOp.methodReg.name}`;
62
+ const { crontab, mode } = regOp.methodConfig;
63
+ if (crontab) {
64
+ __1.DBOS.logger.info(` ${name} @ ${crontab}; ${mode ?? SchedulerMode.ExactlyOncePerIntervalWhenActive}`);
81
65
  }
82
- });
83
- }
84
- }
85
- exports.DBOSScheduler = DBOSScheduler;
86
- const SCHEDULER_EVENT_SERVICE_NAME = 'dbos.scheduler';
87
- class DetachableLoop {
88
- dbosExec;
89
- crontab;
90
- schedMode;
91
- scheduledMethod;
92
- queueName;
93
- isRunning = false;
94
- interruptResolve;
95
- lastExec;
96
- timeMatcher;
97
- scheduledMethodName;
98
- constructor(dbosExec, crontab, schedMode, scheduledMethod, queueName) {
99
- this.dbosExec = dbosExec;
100
- this.crontab = crontab;
101
- this.schedMode = schedMode;
102
- this.scheduledMethod = scheduledMethod;
103
- this.queueName = queueName;
104
- this.lastExec = new Date();
105
- this.lastExec.setMilliseconds(0);
106
- this.timeMatcher = new crontab_1.TimeMatcher(crontab);
107
- this.scheduledMethodName = `${scheduledMethod.className}.${scheduledMethod.name}`;
66
+ else {
67
+ __1.DBOS.logger.info(` ${name} is missing crontab; skipping`);
68
+ }
69
+ }
108
70
  }
109
- async startLoop() {
110
- // See if the exec time is available in durable storage...
111
- if (this.schedMode === SchedulerMode.ExactlyOncePerInterval) {
112
- const lastState = await __1.DBOS.getEventDispatchState(SCHEDULER_EVENT_SERVICE_NAME, this.scheduledMethodName, 'lastState');
113
- const lasttm = lastState?.value;
114
- if (lasttm) {
115
- this.lastExec = new Date(parseFloat(lasttm));
71
+ static async #schedulerLoop(methodReg, timeMatcher, mode, queueName, signal) {
72
+ const name = `${methodReg.className}.${methodReg.name}`;
73
+ let lastExec = new Date().setMilliseconds(0);
74
+ if (mode === SchedulerMode.ExactlyOncePerInterval) {
75
+ const lastState = await __1.DBOS.getEventDispatchState(SCHEDULER_EVENT_SERVICE_NAME, name, 'lastState');
76
+ if (lastState?.value) {
77
+ lastExec = parseFloat(lastState.value);
116
78
  }
117
79
  }
118
- this.isRunning = true;
119
- while (this.isRunning) {
120
- const nextExecTime = this.timeMatcher.nextWakeupTime(this.lastExec);
121
- const sleepTime = nextExecTime.getTime() - Date.now();
80
+ while (!signal.aborted) {
81
+ const nextExec = timeMatcher.nextWakeupTime(lastExec).getTime();
82
+ const sleepTime = nextExec - Date.now();
122
83
  if (sleepTime > 0) {
123
- // Wait for either the timeout or an interruption
124
- let timer;
125
- const timeoutPromise = new Promise((resolve) => {
126
- timer = setTimeout(() => {
84
+ await new Promise((resolve, reject) => {
85
+ // eslint-disable-next-line prefer-const
86
+ let timeoutID;
87
+ const onAbort = () => {
88
+ clearTimeout(timeoutID);
89
+ reject(new Error('Abort signal received'));
90
+ };
91
+ signal.addEventListener('abort', onAbort, { once: true });
92
+ if (signal.aborted) {
93
+ signal.removeEventListener('abort', onAbort);
94
+ reject(new Error('Abort signal received'));
95
+ }
96
+ timeoutID = setTimeout(() => {
97
+ signal.removeEventListener('abort', onAbort);
127
98
  resolve();
128
99
  }, sleepTime);
129
100
  });
130
- await Promise.race([timeoutPromise, new Promise((_, reject) => (this.interruptResolve = reject))]).catch(() => {
131
- __1.DBOS.logger.debug('Scheduler loop interrupted!');
132
- }); // Interrupt sleep throws
133
- clearTimeout(timer);
134
101
  }
135
- if (!this.isRunning) {
102
+ if (signal.aborted) {
136
103
  break;
137
104
  }
138
- // Check crontab
139
- // If this "wake up" time is not on the schedule, we shouldn't execute.
140
- // (While ATOW this wake-up time is a scheduled run time, it is not
141
- // contractually obligated to be so. If this is obligated to be a
142
- // scheduled execution time, then we could make this an assertion
143
- // instead of a check.)
144
- if (!this.timeMatcher.match(nextExecTime)) {
145
- this.lastExec = nextExecTime;
105
+ if (!timeMatcher.match(nextExec)) {
106
+ lastExec = nextExec;
146
107
  continue;
147
108
  }
148
- // Init workflow
149
- const workflowUUID = `sched-${this.scheduledMethodName}-${nextExecTime.toISOString()}`;
150
- __1.DBOS.logger.debug(`Executing scheduled workflow ${workflowUUID}`);
151
- const wfParams = {
152
- workflowUUID: workflowUUID,
153
- configuredInstance: null,
154
- queueName: this.queueName,
155
- };
156
- // All operations annotated with Scheduled decorators must take in these four
157
- const args = [nextExecTime, new Date()];
158
- // We currently only support scheduled workflows
159
- if (this.scheduledMethod.workflowConfig) {
160
- // Execute the workflow
161
- await this.dbosExec.workflow(this.scheduledMethod.registeredFunction, wfParams, ...args);
109
+ const date = new Date(nextExec);
110
+ if (methodReg.workflowConfig && methodReg.registeredFunction) {
111
+ const workflowID = `sched-${name}-${date.toISOString()}`;
112
+ const wfParams = { workflowID, queueName };
113
+ __1.DBOS.logger.debug(`Executing scheduled workflow ${workflowID}`);
114
+ await __1.DBOS.startWorkflow(methodReg.registeredFunction, wfParams)(date, new Date());
162
115
  }
163
116
  else {
164
- __1.DBOS.logger.error(`Function ${this.scheduledMethodName} is @scheduled but not a workflow`);
117
+ __1.DBOS.logger.error(`${name} is @scheduled but not a workflow`);
165
118
  }
166
- // Record the time of the wf kicked off
167
- const ers = {
168
- service: SCHEDULER_EVENT_SERVICE_NAME,
169
- workflowFnName: this.scheduledMethodName,
170
- key: 'lastState',
171
- value: `${nextExecTime.getTime()}`,
172
- updateTime: nextExecTime.getTime(),
173
- };
174
- const updRec = await __1.DBOS.upsertEventDispatchState(ers);
175
- const dbTime = parseFloat(updRec.value);
176
- if (dbTime && dbTime > nextExecTime.getTime())
177
- nextExecTime.setTime(dbTime);
178
- this.lastExec = nextExecTime;
119
+ lastExec = await ScheduledReceiver.#setLastExecTime(name, nextExec);
179
120
  }
180
121
  }
181
- setStopLoopFlag() {
182
- if (!this.isRunning)
183
- return;
184
- this.isRunning = false;
185
- if (this.interruptResolve) {
186
- this.interruptResolve(); // Trigger the interruption
122
+ static async #setLastExecTime(name, time) {
123
+ // Record the time of the wf kicked off
124
+ const state = {
125
+ service: SCHEDULER_EVENT_SERVICE_NAME,
126
+ workflowFnName: name,
127
+ key: 'lastState',
128
+ value: `${time}`,
129
+ updateTime: time,
130
+ };
131
+ const newState = await __1.DBOS.upsertEventDispatchState(state);
132
+ const dbTime = parseFloat(newState.value);
133
+ if (dbTime && dbTime > time) {
134
+ return dbTime;
187
135
  }
136
+ return time;
137
+ }
138
+ // registerScheduled is static so it can be called before an instance is created during DBOS.launch.
139
+ // This means we can't use the instance as the external info key for associateFunctionWithInfo below
140
+ // or in getAssociatedInfo above...which means we can only have one scheduled receiver instance.
141
+ // However, since this is an internal receiver, it's safe to assume there is ever only one instnace.
142
+ static registerScheduled(func, config) {
143
+ const { regInfo } = __1.DBOS.associateFunctionWithInfo(SCHEDULER_EVENT_SERVICE_NAME, func, {
144
+ ctorOrProto: config.ctorOrProto,
145
+ className: config.className,
146
+ name: config.name ?? func.name,
147
+ });
148
+ const schedRegInfo = regInfo;
149
+ schedRegInfo.crontab = config.crontab;
150
+ schedRegInfo.mode = config.mode;
151
+ schedRegInfo.queueName = config.queueName;
188
152
  }
189
153
  }
154
+ exports.ScheduledReceiver = ScheduledReceiver;
190
155
  //# sourceMappingURL=scheduler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":";;;AAAA,0BAA6C;AAE7C,uCAAwC;AAExC,IAAI;AACJ,gBAAgB;AAChB,IAAI;AAEJ;;GAEG;AACH,IAAY,aAYX;AAZD,WAAY,aAAa;IACvB;;;OAGG;IACH,kEAAiD,CAAA;IACjD;;;;OAIG;IACH,sFAAqE,CAAA;AACvE,CAAC,EAZW,aAAa,6BAAb,aAAa,QAYxB;AAyBD,2BAA2B;AAC3B,uBAAuB;AACvB,2BAA2B;AAE3B,MAAM,4BAA4B,GAAG,gBAAgB,CAAC;AAEtD,MAAa,iBAAiB;IACnB,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;IACpC,YAAY,GAAG,IAAI,KAAK,EAAiB,CAAC;IAEnD;QACE,QAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,UAAU;QACd,KAAK,MAAM,KAAK,IAAI,QAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,EAAE,CAAC;YACzE,IAAI,KAAK,CAAC,SAAS,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBACrD,QAAI,CAAC,MAAM,CAAC,IAAI,CACd,sBAAsB,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,2CAA2C,CACnH,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,YAAwC,CAAC;YACpF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,QAAI,CAAC,MAAM,CAAC,IAAI,CACd,sBAAsB,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,+BAA+B,CACvG,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,iBAAiB,CAAC,cAAc,CAC9C,KAAK,CAAC,SAAS,EACf,WAAW,EACX,IAAI,IAAI,aAAa,CAAC,gCAAgC,EACtD,SAAS,EACT,IAAI,CAAC,WAAW,CAAC,MAAM,CACxB,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,sBAAsB;QACpB,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,QAAI,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACpE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,YAAwC,CAAC;YACzE,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,OAAO,KAAK,IAAI,IAAI,aAAa,CAAC,gCAAgC,EAAE,CAAC,CAAC;YAC1G,CAAC;iBAAM,CAAC;gBACN,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,+BAA+B,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,SAAiC,EACjC,WAAwB,EACxB,IAAmB,EACnB,SAA6B,EAC7B,MAAmB;QAEnB,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;QAExD,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,KAAK,aAAa,CAAC,sBAAsB,EAAE,CAAC;YAClD,MAAM,SAAS,GAAG,MAAM,QAAI,CAAC,qBAAqB,CAAC,4BAA4B,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACpG,IAAI,SAAS,EAAE,KAAK,EAAE,CAAC;gBACrB,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;YAChE,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAExC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,wCAAwC;oBACxC,IAAI,SAAyB,CAAC;oBAE9B,MAAM,OAAO,GAAG,GAAG,EAAE;wBACnB,YAAY,CAAC,SAAS,CAAC,CAAC;wBACxB,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;oBAC7C,CAAC,CAAC;oBAEF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAE1D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC7C,MAAM,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;oBAC7C,CAAC;oBAED,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC1B,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBAC7C,OAAO,EAAE,CAAC;oBACZ,CAAC,EAAE,SAAS,CAAC,CAAC;gBAChB,CAAC,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM;YACR,CAAC;YAED,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjC,QAAQ,GAAG,QAAQ,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,SAAS,CAAC,cAAc,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC;gBAC7D,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzD,MAAM,QAAQ,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;gBAC3C,QAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;gBAChE,MAAM,QAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAA+C,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAClH,CAAC;iBAAM,CAAC;gBACN,QAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,mCAAmC,CAAC,CAAC;YAChE,CAAC;YAED,QAAQ,GAAG,MAAM,iBAAiB,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,IAAY;QACtD,uCAAuC;QACvC,MAAM,KAAK,GAAsB;YAC/B,OAAO,EAAE,4BAA4B;YACrC,cAAc,EAAE,IAAI;YACpB,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,GAAG,IAAI,EAAE;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,QAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC;QAC3C,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oGAAoG;IACpG,oGAAoG;IACpG,gGAAgG;IAChG,oGAAoG;IAEpG,MAAM,CAAC,iBAAiB,CACtB,IAA6D,EAC7D,MAAsC;QAEtC,MAAM,EAAE,OAAO,EAAE,GAAG,QAAI,CAAC,yBAAyB,CAAC,4BAA4B,EAAE,IAAI,EAAE;YACrF,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;SAC/B,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,OAA0B,CAAC;QAChD,YAAY,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QACtC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,YAAY,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5C,CAAC;CACF;AAlKD,8CAkKC"}
@@ -1,12 +1,11 @@
1
1
  /// <reference types="node" />
2
- import { DBOSConfigInternal } from './dbos-executor';
2
+ import { DBOSConfigInternal, DBOSExternalState } from './dbos-executor';
3
3
  import { Pool, PoolConfig, Client } from 'pg';
4
4
  import { GetPendingWorkflowsOutput, GetQueuedWorkflowsInput, GetWorkflowsInput, StatusString } from './workflow';
5
5
  import { operation_outputs } from '../schemas/system_db_schema';
6
6
  import { GlobalLogger } from './telemetry/logs';
7
7
  import { Knex } from 'knex';
8
8
  import { WorkflowQueue } from './wfqueue';
9
- import { DBOSEventReceiverState } from './eventreceiver';
10
9
  export interface SystemDatabaseStoredResult {
11
10
  output?: string | null;
12
11
  error?: string | null;
@@ -72,8 +71,8 @@ export interface SystemDatabase {
72
71
  functionID: number;
73
72
  timeoutFunctionID: number;
74
73
  }): Promise<string | null>;
75
- getEventDispatchState(service: string, workflowFnName: string, key: string): Promise<DBOSEventReceiverState | undefined>;
76
- upsertEventDispatchState(state: DBOSEventReceiverState): Promise<DBOSEventReceiverState>;
74
+ getEventDispatchState(service: string, workflowFnName: string, key: string): Promise<DBOSExternalState | undefined>;
75
+ upsertEventDispatchState(state: DBOSExternalState): Promise<DBOSExternalState>;
77
76
  listWorkflows(input: GetWorkflowsInput): Promise<WorkflowStatusInternal[]>;
78
77
  listQueuedWorkflows(input: GetQueuedWorkflowsInput): Promise<WorkflowStatusInternal[]>;
79
78
  garbageCollect(cutoffEpochTimestampMs?: number, rowsThreshold?: number): Promise<void>;
@@ -188,8 +187,8 @@ export declare class PostgresSystemDatabase implements SystemDatabase {
188
187
  * workflow listener by resolving its promise.
189
188
  */
190
189
  reconnectTimeout: NodeJS.Timeout | null;
191
- getEventDispatchState(service: string, workflowName: string, key: string): Promise<DBOSEventReceiverState | undefined>;
192
- upsertEventDispatchState(state: DBOSEventReceiverState): Promise<DBOSEventReceiverState>;
190
+ getEventDispatchState(service: string, workflowName: string, key: string): Promise<DBOSExternalState | undefined>;
191
+ upsertEventDispatchState(state: DBOSExternalState): Promise<DBOSExternalState>;
193
192
  listWorkflows(input: GetWorkflowsInput): Promise<WorkflowStatusInternal[]>;
194
193
  listQueuedWorkflows(input: GetQueuedWorkflowsInput): Promise<WorkflowStatusInternal[]>;
195
194
  clearQueueAssignment(workflowID: string): Promise<boolean>;