@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.
- package/dist/src/datasource.d.ts +11 -6
- package/dist/src/datasource.d.ts.map +1 -1
- package/dist/src/datasource.js +9 -6
- package/dist/src/datasource.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +51 -89
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +61 -284
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/config.d.ts +6 -4
- package/dist/src/dbos-runtime/config.d.ts.map +1 -1
- package/dist/src/dbos-runtime/config.js +59 -28
- package/dist/src/dbos-runtime/config.js.map +1 -1
- package/dist/src/dbos-runtime/migrate.js +3 -3
- package/dist/src/dbos-runtime/migrate.js.map +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +4 -14
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/dbos.d.ts +27 -65
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +107 -122
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/decorators.d.ts +51 -57
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +234 -200
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/httpServer/handler.d.ts +1 -1
- package/dist/src/httpServer/handler.d.ts.map +1 -1
- package/dist/src/httpServer/handler.js +1 -1
- package/dist/src/httpServer/handler.js.map +1 -1
- package/dist/src/httpServer/middleware.d.ts +0 -1
- package/dist/src/httpServer/middleware.d.ts.map +1 -1
- package/dist/src/httpServer/middleware.js.map +1 -1
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/httpServer/server.js +4 -6
- package/dist/src/httpServer/server.js.map +1 -1
- package/dist/src/index.d.ts +3 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/paramdecorators.d.ts +6 -6
- package/dist/src/paramdecorators.d.ts.map +1 -1
- package/dist/src/paramdecorators.js.map +1 -1
- package/dist/src/scheduler/crontab.d.ts +3 -8
- package/dist/src/scheduler/crontab.d.ts.map +1 -1
- package/dist/src/scheduler/crontab.js +24 -23
- package/dist/src/scheduler/crontab.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +10 -31
- package/dist/src/scheduler/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler/scheduler.js +100 -135
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/system_database.d.ts +5 -6
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +14 -1
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +14 -4
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.cjs +6 -1
- package/package.json +1 -1
- package/dist/src/eventreceiver.d.ts +0 -152
- package/dist/src/eventreceiver.d.ts.map +0 -1
- package/dist/src/eventreceiver.js +0 -3
- 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
|
-
|
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
|
-
|
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
|
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
|
257
|
-
this
|
258
|
-
this
|
259
|
-
this
|
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
|
269
|
+
timeZone: this.#timezone,
|
270
270
|
})
|
271
271
|
: null;
|
272
272
|
}
|
273
273
|
match(date) {
|
274
|
-
date = this
|
275
|
-
const runOnSecond = matchPattern(this
|
276
|
-
const runOnMinute = matchPattern(this
|
277
|
-
const runOnHour = matchPattern(this
|
278
|
-
const runOnDay = this
|
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
|
283
|
-
const runOnMonth = matchPattern(this
|
284
|
-
const runOnWeekDay = matchPattern(this
|
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
|
-
|
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
|
301
|
-
return new Date(this
|
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 {
|
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
|
23
|
-
/** Schedule, in 5- or 6-spot crontab format
|
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
|
35
|
-
|
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,
|
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.
|
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
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
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
|
63
|
-
|
64
|
-
|
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
|
-
|
58
|
+
logRegisteredEndpoints() {
|
76
59
|
__1.DBOS.logger.info('Scheduled endpoints:');
|
77
|
-
|
78
|
-
const
|
79
|
-
|
80
|
-
|
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
|
-
|
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
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
const
|
114
|
-
if (
|
115
|
-
|
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
|
-
|
119
|
-
|
120
|
-
const
|
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
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
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 (
|
102
|
+
if (signal.aborted) {
|
136
103
|
break;
|
137
104
|
}
|
138
|
-
|
139
|
-
|
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
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
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(
|
117
|
+
__1.DBOS.logger.error(`${name} is @scheduled but not a workflow`);
|
165
118
|
}
|
166
|
-
|
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
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
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":";;;AAAA,
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../../src/scheduler/scheduler.ts"],"names":[],"mappings":"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"}
|
@@ -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<
|
76
|
-
upsertEventDispatchState(state:
|
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<
|
192
|
-
upsertEventDispatchState(state:
|
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>;
|