@dbos-inc/dbos-sdk 3.0.37-preview.gfd7eaf193c → 3.0.38-preview.g835773f00f
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/client.d.ts.map +1 -1
- package/dist/src/client.js.map +1 -1
- package/dist/src/context.d.ts +4 -4
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +7 -2
- package/dist/src/context.js.map +1 -1
- package/dist/src/datasource.d.ts +3 -9
- package/dist/src/datasource.d.ts.map +1 -1
- package/dist/src/datasource.js +39 -17
- package/dist/src/datasource.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +30 -31
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +31 -57
- 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 +90 -54
- package/dist/src/dbos-runtime/config.js.map +1 -1
- package/dist/src/dbos-runtime/docker_pg_helper.d.ts +3 -0
- package/dist/src/dbos-runtime/docker_pg_helper.d.ts.map +1 -1
- package/dist/src/dbos-runtime/docker_pg_helper.js +17 -4
- package/dist/src/dbos-runtime/docker_pg_helper.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 -5
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/dbos.d.ts +25 -53
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +110 -117
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/decorators.d.ts +26 -7
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +101 -64
- 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.map +1 -1
- package/dist/src/httpServer/middleware.d.ts +2 -3
- 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 +3 -3
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/httpServer/server.js +15 -17
- package/dist/src/httpServer/server.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -2
- 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 -136
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/system_database.d.ts +9 -9
- 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/telemetry/exporters.d.ts +2 -2
- package/dist/src/telemetry/exporters.d.ts.map +1 -1
- package/dist/src/telemetry/exporters.js +3 -2
- package/dist/src/telemetry/exporters.js.map +1 -1
- package/dist/src/telemetry/logs.d.ts +4 -8
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +25 -13
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/user_database.d.ts +2 -2
- package/dist/src/user_database.d.ts.map +1 -1
- package/dist/src/user_database.js.map +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +19 -5
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.cjs +6 -1
- package/package.json +1 -7
- package/dist/src/dbos-runtime/cloudutils/authentication.d.ts +0 -7
- package/dist/src/dbos-runtime/cloudutils/authentication.d.ts.map +0 -1
- package/dist/src/dbos-runtime/cloudutils/authentication.js +0 -101
- package/dist/src/dbos-runtime/cloudutils/authentication.js.map +0 -1
- package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts +0 -50
- package/dist/src/dbos-runtime/cloudutils/cloudutils.d.ts.map +0 -1
- package/dist/src/dbos-runtime/cloudutils/cloudutils.js +0 -262
- package/dist/src/dbos-runtime/cloudutils/cloudutils.js.map +0 -1
- package/dist/src/dbos-runtime/cloudutils/databases.d.ts +0 -21
- package/dist/src/dbos-runtime/cloudutils/databases.d.ts.map +0 -1
- package/dist/src/dbos-runtime/cloudutils/databases.js +0 -190
- package/dist/src/dbos-runtime/cloudutils/databases.js.map +0 -1
- package/src/dbos-runtime/cloudutils/README.md +0 -1
@@ -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,8 +1,7 @@
|
|
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
|
-
const decorators_1 = require("../decorators");
|
6
5
|
const crontab_1 = require("./crontab");
|
7
6
|
////
|
8
7
|
// Configuration
|
@@ -24,168 +23,133 @@ var SchedulerMode;
|
|
24
23
|
*/
|
25
24
|
SchedulerMode["ExactlyOncePerIntervalWhenActive"] = "ExactlyOncePerIntervalWhenActive";
|
26
25
|
})(SchedulerMode || (exports.SchedulerMode = SchedulerMode = {}));
|
27
|
-
/**
|
28
|
-
* Configuration for a `@DBOS.scheduled` workflow
|
29
|
-
*/
|
30
|
-
class SchedulerConfig {
|
31
|
-
/** Schedule, in 5- or 6-spot crontab format; defaults to scheduling every minute */
|
32
|
-
crontab = '* * * * *';
|
33
|
-
/**
|
34
|
-
* Indicates whether or not to retroactively start workflows that were scheduled during
|
35
|
-
* times when the app was not running. @see `SchedulerMode`.
|
36
|
-
*/
|
37
|
-
mode = SchedulerMode.ExactlyOncePerIntervalWhenActive;
|
38
|
-
/** If set, workflows will be enqueued on the named queue, rather than being started immediately */
|
39
|
-
queueName;
|
40
|
-
}
|
41
|
-
exports.SchedulerConfig = SchedulerConfig;
|
42
26
|
///////////////////////////
|
43
27
|
// Scheduler Management
|
44
28
|
///////////////////////////
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
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);
|
50
35
|
}
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
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;
|
60
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);
|
61
51
|
}
|
62
52
|
}
|
63
|
-
async
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
this.schedLoops = [];
|
68
|
-
try {
|
69
|
-
await Promise.allSettled(this.schedTasks);
|
70
|
-
}
|
71
|
-
catch (e) {
|
72
|
-
// What gets caught here is the loop stopping, which is what we wanted.
|
73
|
-
}
|
74
|
-
this.schedTasks = [];
|
53
|
+
async destroy() {
|
54
|
+
this.#controller.abort();
|
55
|
+
const promises = this.#disposables.splice(0);
|
56
|
+
await Promise.allSettled(promises);
|
75
57
|
}
|
76
|
-
|
58
|
+
logRegisteredEndpoints() {
|
77
59
|
__1.DBOS.logger.info('Scheduled endpoints:');
|
78
|
-
(
|
79
|
-
const
|
80
|
-
|
81
|
-
|
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}`);
|
82
65
|
}
|
83
|
-
|
84
|
-
}
|
85
|
-
}
|
86
|
-
|
87
|
-
const SCHEDULER_EVENT_SERVICE_NAME = 'dbos.scheduler';
|
88
|
-
class DetachableLoop {
|
89
|
-
dbosExec;
|
90
|
-
crontab;
|
91
|
-
schedMode;
|
92
|
-
scheduledMethod;
|
93
|
-
queueName;
|
94
|
-
isRunning = false;
|
95
|
-
interruptResolve;
|
96
|
-
lastExec;
|
97
|
-
timeMatcher;
|
98
|
-
scheduledMethodName;
|
99
|
-
constructor(dbosExec, crontab, schedMode, scheduledMethod, queueName) {
|
100
|
-
this.dbosExec = dbosExec;
|
101
|
-
this.crontab = crontab;
|
102
|
-
this.schedMode = schedMode;
|
103
|
-
this.scheduledMethod = scheduledMethod;
|
104
|
-
this.queueName = queueName;
|
105
|
-
this.lastExec = new Date();
|
106
|
-
this.lastExec.setMilliseconds(0);
|
107
|
-
this.timeMatcher = new crontab_1.TimeMatcher(crontab);
|
108
|
-
this.scheduledMethodName = `${scheduledMethod.className}.${scheduledMethod.name}`;
|
66
|
+
else {
|
67
|
+
__1.DBOS.logger.info(` ${name} is missing crontab; skipping`);
|
68
|
+
}
|
69
|
+
}
|
109
70
|
}
|
110
|
-
async
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
const
|
115
|
-
if (
|
116
|
-
|
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);
|
117
78
|
}
|
118
79
|
}
|
119
|
-
|
120
|
-
|
121
|
-
const
|
122
|
-
const sleepTime = nextExecTime.getTime() - Date.now();
|
80
|
+
while (!signal.aborted) {
|
81
|
+
const nextExec = timeMatcher.nextWakeupTime(lastExec).getTime();
|
82
|
+
const sleepTime = nextExec - Date.now();
|
123
83
|
if (sleepTime > 0) {
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
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);
|
128
98
|
resolve();
|
129
99
|
}, sleepTime);
|
130
100
|
});
|
131
|
-
await Promise.race([timeoutPromise, new Promise((_, reject) => (this.interruptResolve = reject))]).catch(() => {
|
132
|
-
__1.DBOS.logger.debug('Scheduler loop interrupted!');
|
133
|
-
}); // Interrupt sleep throws
|
134
|
-
clearTimeout(timer);
|
135
101
|
}
|
136
|
-
if (
|
102
|
+
if (signal.aborted) {
|
137
103
|
break;
|
138
104
|
}
|
139
|
-
|
140
|
-
|
141
|
-
// (While ATOW this wake-up time is a scheduled run time, it is not
|
142
|
-
// contractually obligated to be so. If this is obligated to be a
|
143
|
-
// scheduled execution time, then we could make this an assertion
|
144
|
-
// instead of a check.)
|
145
|
-
if (!this.timeMatcher.match(nextExecTime)) {
|
146
|
-
this.lastExec = nextExecTime;
|
105
|
+
if (!timeMatcher.match(nextExec)) {
|
106
|
+
lastExec = nextExec;
|
147
107
|
continue;
|
148
108
|
}
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
queueName: this.queueName,
|
156
|
-
};
|
157
|
-
// All operations annotated with Scheduled decorators must take in these four
|
158
|
-
const args = [nextExecTime, new Date()];
|
159
|
-
// We currently only support scheduled workflows
|
160
|
-
if (this.scheduledMethod.workflowConfig) {
|
161
|
-
// Execute the workflow
|
162
|
-
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());
|
163
115
|
}
|
164
116
|
else {
|
165
|
-
__1.DBOS.logger.error(
|
117
|
+
__1.DBOS.logger.error(`${name} is @scheduled but not a workflow`);
|
166
118
|
}
|
167
|
-
|
168
|
-
const ers = {
|
169
|
-
service: SCHEDULER_EVENT_SERVICE_NAME,
|
170
|
-
workflowFnName: this.scheduledMethodName,
|
171
|
-
key: 'lastState',
|
172
|
-
value: `${nextExecTime.getTime()}`,
|
173
|
-
updateTime: nextExecTime.getTime(),
|
174
|
-
};
|
175
|
-
const updRec = await __1.DBOS.upsertEventDispatchState(ers);
|
176
|
-
const dbTime = parseFloat(updRec.value);
|
177
|
-
if (dbTime && dbTime > nextExecTime.getTime())
|
178
|
-
nextExecTime.setTime(dbTime);
|
179
|
-
this.lastExec = nextExecTime;
|
119
|
+
lastExec = await ScheduledReceiver.#setLastExecTime(name, nextExec);
|
180
120
|
}
|
181
121
|
}
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
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;
|
188
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;
|
189
152
|
}
|
190
153
|
}
|
154
|
+
exports.ScheduledReceiver = ScheduledReceiver;
|
191
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,9 +1,9 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import { DBOSConfigInternal,
|
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
|
-
import { GlobalLogger
|
6
|
+
import { GlobalLogger } from './telemetry/logs';
|
7
7
|
import { Knex } from 'knex';
|
8
8
|
import { WorkflowQueue } from './wfqueue';
|
9
9
|
export interface SystemDatabaseStoredResult {
|
@@ -71,8 +71,8 @@ export interface SystemDatabase {
|
|
71
71
|
functionID: number;
|
72
72
|
timeoutFunctionID: number;
|
73
73
|
}): Promise<string | null>;
|
74
|
-
getEventDispatchState(service: string, workflowFnName: string, key: string): Promise<
|
75
|
-
upsertEventDispatchState(state:
|
74
|
+
getEventDispatchState(service: string, workflowFnName: string, key: string): Promise<DBOSExternalState | undefined>;
|
75
|
+
upsertEventDispatchState(state: DBOSExternalState): Promise<DBOSExternalState>;
|
76
76
|
listWorkflows(input: GetWorkflowsInput): Promise<WorkflowStatusInternal[]>;
|
77
77
|
listQueuedWorkflows(input: GetQueuedWorkflowsInput): Promise<WorkflowStatusInternal[]>;
|
78
78
|
garbageCollect(cutoffEpochTimestampMs?: number, rowsThreshold?: number): Promise<void>;
|
@@ -109,7 +109,7 @@ export interface EnqueueOptions {
|
|
109
109
|
export interface ExistenceCheck {
|
110
110
|
exists: boolean;
|
111
111
|
}
|
112
|
-
export declare function migrateSystemDatabase(systemPoolConfig: PoolConfig, logger:
|
112
|
+
export declare function migrateSystemDatabase(systemPoolConfig: PoolConfig, logger: GlobalLogger): Promise<void>;
|
113
113
|
declare class NotificationMap<T> {
|
114
114
|
map: Map<string, Map<number, (event?: T) => void>>;
|
115
115
|
curCK: number;
|
@@ -127,7 +127,7 @@ export declare class PostgresSystemDatabase implements SystemDatabase {
|
|
127
127
|
#private;
|
128
128
|
readonly pgPoolConfig: PoolConfig;
|
129
129
|
readonly systemDatabaseName: string;
|
130
|
-
readonly logger:
|
130
|
+
readonly logger: GlobalLogger;
|
131
131
|
readonly sysDbPoolSize?: number | undefined;
|
132
132
|
readonly pool: Pool;
|
133
133
|
readonly systemPoolConfig: PoolConfig;
|
@@ -141,7 +141,7 @@ export declare class PostgresSystemDatabase implements SystemDatabase {
|
|
141
141
|
readonly cancelWakeupMap: NotificationMap<void>;
|
142
142
|
readonly runningWorkflowMap: Map<string, Promise<unknown>>;
|
143
143
|
readonly workflowCancellationMap: Map<string, boolean>;
|
144
|
-
constructor(pgPoolConfig: PoolConfig, systemDatabaseName: string, logger:
|
144
|
+
constructor(pgPoolConfig: PoolConfig, systemDatabaseName: string, logger: GlobalLogger, sysDbPoolSize?: number | undefined);
|
145
145
|
init(): Promise<void>;
|
146
146
|
destroy(): Promise<void>;
|
147
147
|
static dropSystemDB(dbosConfig: DBOSConfigInternal): Promise<void>;
|
@@ -187,8 +187,8 @@ export declare class PostgresSystemDatabase implements SystemDatabase {
|
|
187
187
|
* workflow listener by resolving its promise.
|
188
188
|
*/
|
189
189
|
reconnectTimeout: NodeJS.Timeout | null;
|
190
|
-
getEventDispatchState(service: string, workflowName: string, key: string): Promise<
|
191
|
-
upsertEventDispatchState(state:
|
190
|
+
getEventDispatchState(service: string, workflowName: string, key: string): Promise<DBOSExternalState | undefined>;
|
191
|
+
upsertEventDispatchState(state: DBOSExternalState): Promise<DBOSExternalState>;
|
192
192
|
listWorkflows(input: GetWorkflowsInput): Promise<WorkflowStatusInternal[]>;
|
193
193
|
listQueuedWorkflows(input: GetQueuedWorkflowsInput): Promise<WorkflowStatusInternal[]>;
|
194
194
|
clearQueueAssignment(workflowID: string): Promise<boolean>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAgB,
|
1
|
+
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
|
@@ -20,6 +20,7 @@ const workflow_1 = require("./workflow");
|
|
20
20
|
const utils_1 = require("./utils");
|
21
21
|
const knex_1 = __importDefault(require("knex"));
|
22
22
|
const path_1 = __importDefault(require("path"));
|
23
|
+
const fs_1 = __importDefault(require("fs"));
|
23
24
|
const crypto_1 = require("crypto");
|
24
25
|
exports.DBOS_FUNCNAME_SEND = 'DBOS.send';
|
25
26
|
exports.DBOS_FUNCNAME_RECV = 'DBOS.recv';
|
@@ -28,7 +29,19 @@ exports.DBOS_FUNCNAME_GETEVENT = 'DBOS.getEvent';
|
|
28
29
|
exports.DBOS_FUNCNAME_SLEEP = 'DBOS.sleep';
|
29
30
|
exports.DBOS_FUNCNAME_GETSTATUS = 'getStatus';
|
30
31
|
async function migrateSystemDatabase(systemPoolConfig, logger) {
|
31
|
-
|
32
|
+
let migrationsDirectory;
|
33
|
+
try {
|
34
|
+
migrationsDirectory = path_1.default.join((0, utils_1.findPackageRoot)(__dirname), 'migrations');
|
35
|
+
}
|
36
|
+
catch (packageError) {
|
37
|
+
migrationsDirectory = path_1.default.join(__dirname, 'migrations');
|
38
|
+
}
|
39
|
+
// Check if migrations directory exists
|
40
|
+
if (!fs_1.default.existsSync(migrationsDirectory)) {
|
41
|
+
logger.warn('DBOS system database migration files not found. If you are using a bundler, DBOS cannot automatically create the system database. ' +
|
42
|
+
'Please run "npx dbos migrate" to create your system database before running your bundled application.');
|
43
|
+
return;
|
44
|
+
}
|
32
45
|
const knexConfig = {
|
33
46
|
client: 'pg',
|
34
47
|
connection: systemPoolConfig,
|