@dbos-inc/dbos-sdk 4.1.5-preview → 4.2.3-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.
@@ -1,6 +1,10 @@
1
1
  /// <reference types="node" />
2
2
  import { DBOSExecutor } from '../dbos-executor';
3
3
  import WebSocket from 'ws';
4
+ interface IntervalTimeout {
5
+ interval: NodeJS.Timeout | undefined;
6
+ timeout: NodeJS.Timeout | undefined;
7
+ }
4
8
  export declare class Conductor {
5
9
  readonly dbosExec: DBOSExecutor;
6
10
  readonly conductorKey: string;
@@ -11,14 +15,14 @@ export declare class Conductor {
11
15
  isClosed: boolean;
12
16
  pingPeriodMs: number;
13
17
  pingTimeoutMs: number;
14
- pingInterval: NodeJS.Timeout | undefined;
15
- pingTimeout: NodeJS.Timeout | undefined;
18
+ pingIntervalTimeout: IntervalTimeout | undefined;
16
19
  reconnectDelayMs: number;
17
20
  reconnectTimeout: NodeJS.Timeout | undefined;
18
21
  constructor(dbosExec: DBOSExecutor, conductorKey: string, conductorURL: string);
19
- resetWebsocket(): void;
20
- setPingInterval(): void;
22
+ resetWebsocket(currWebsocket?: WebSocket, currPing?: IntervalTimeout): void;
23
+ setPingInterval(currWebsocket: WebSocket, currPing: IntervalTimeout): void;
21
24
  dispatchLoop(): void;
22
25
  stop(): void;
23
26
  }
27
+ export {};
24
28
  //# sourceMappingURL=conductor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conductor.d.ts","sourceRoot":"","sources":["../../../src/conductor/conductor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,SAAS,MAAM,IAAI,CAAC;AAS3B,qBAAa,SAAS;IAalB,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAd/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,GAAG,SAAS,CAAa;IAC7C,cAAc,UAAS;IACvB,QAAQ,UAAS;IACjB,YAAY,SAAS;IACrB,aAAa,SAAS;IACtB,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAa;IACrD,WAAW,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAa;IACpD,gBAAgB,SAAQ;IACxB,gBAAgB,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAa;gBAG9C,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM;IAQ/B,cAAc;IAwBd,eAAe;IA0Bf,YAAY;IAyRZ,IAAI;CASL"}
1
+ {"version":3,"file":"conductor.d.ts","sourceRoot":"","sources":["../../../src/conductor/conductor.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,OAAO,SAAS,MAAM,IAAI,CAAC;AAS3B,UAAU,eAAe;IACvB,QAAQ,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,SAAS;IAYlB,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM;IAb/B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,GAAG,SAAS,CAAa;IAC7C,cAAc,UAAS;IACvB,QAAQ,UAAS;IACjB,YAAY,SAAS;IACrB,aAAa,SAAS;IACtB,mBAAmB,EAAE,eAAe,GAAG,SAAS,CAAa;IAC7D,gBAAgB,SAAQ;IACxB,gBAAgB,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAa;gBAG9C,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM;IAQ/B,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,eAAe;IAoBpE,eAAe,CAAC,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;IAuBnE,YAAY;IAySZ,IAAI;CAUL"}
@@ -41,11 +41,10 @@ class Conductor {
41
41
  url;
42
42
  websocket = undefined;
43
43
  isShuttingDown = false; // Is in the process of shutting down the connection
44
- isClosed = false; // Is closed after the connection has been terminated
44
+ isClosed = false; // Has the connection been fully closed
45
45
  pingPeriodMs = 20000; // Time in milliseconds to wait before sending a ping message to the conductor
46
46
  pingTimeoutMs = 15000; // Time in milliseconds to wait for a response to a ping message before considering the connection dead
47
- pingInterval = undefined; // Interval for sending ping messages to the conductor
48
- pingTimeout = undefined; // Timeout for waiting for a response to a ping message
47
+ pingIntervalTimeout = undefined; // Combined interval and timeout for pinging Conductor
49
48
  reconnectDelayMs = 1000;
50
49
  reconnectTimeout = undefined;
51
50
  constructor(dbosExec, conductorKey, conductorURL) {
@@ -57,59 +56,57 @@ class Conductor {
57
56
  const cleanConductorURL = conductorURL.replace(/\/+$/, '');
58
57
  this.url = `${cleanConductorURL}/websocket/${appName}/${conductorKey}`;
59
58
  }
60
- resetWebsocket() {
61
- if (this.pingInterval) {
62
- clearInterval(this.pingInterval);
63
- this.pingInterval = undefined;
64
- }
65
- if (this.pingTimeout) {
66
- clearTimeout(this.pingTimeout);
67
- this.pingTimeout = undefined;
68
- }
69
- if (this.websocket) {
70
- this.websocket.terminate(); // Terminate the existing connection
71
- this.websocket = undefined; // Set the websocket to undefined to indicate it's closed
59
+ resetWebsocket(currWebsocket, currPing) {
60
+ clearInterval(currPing?.interval);
61
+ clearTimeout(currPing?.timeout);
62
+ if (currWebsocket) {
63
+ currWebsocket.terminate(); // Terminate the existing connection
64
+ if (this.websocket === currWebsocket) {
65
+ // Only clear if it's the same websocket
66
+ this.websocket = undefined;
67
+ }
72
68
  }
73
69
  if (this.reconnectTimeout || this.isShuttingDown) {
74
70
  return;
75
71
  }
76
72
  this.dbosExec.logger.debug(`Reconnecting in ${this.reconnectDelayMs / 1000} second`);
77
73
  this.reconnectTimeout = setTimeout(() => {
78
- this.reconnectTimeout = undefined;
79
74
  this.dispatchLoop();
80
75
  }, this.reconnectDelayMs);
81
76
  }
82
- setPingInterval() {
77
+ setPingInterval(currWebsocket, currPing) {
83
78
  // Clear any existing ping interval to avoid multiple intervals being set
84
- if (this.pingInterval) {
85
- clearInterval(this.pingInterval);
86
- this.pingInterval = undefined;
87
- }
88
- this.pingInterval = setInterval(() => {
89
- if (this.websocket?.readyState !== ws_1.default.OPEN) {
90
- return;
91
- }
92
- this.dbosExec.logger.debug('Sending ping to conductor');
93
- this.websocket.ping();
94
- // Set ping timeout.
95
- this.pingTimeout = setTimeout(() => {
79
+ clearInterval(currPing.interval);
80
+ clearTimeout(currPing.timeout);
81
+ currPing.interval = setInterval(() => {
82
+ // Set ping timeout before sending ping. This prevents the socket from hanging at a non-open state indefinitely
83
+ currPing.timeout = setTimeout(() => {
96
84
  if (this.isShuttingDown) {
97
- this.isClosed = true;
98
85
  return;
99
86
  }
100
87
  else if (this.reconnectTimeout === undefined) {
101
88
  // Otherwise, try to reconnect if we haven't already
102
89
  this.dbosExec.logger.warn('Connection to conductor lost. Reconnecting...');
103
- this.resetWebsocket();
90
+ this.resetWebsocket(currWebsocket, currPing);
104
91
  }
105
92
  }, this.pingTimeoutMs);
93
+ // Only ping if the connection is open
94
+ if (currWebsocket.readyState === ws_1.default.OPEN) {
95
+ this.dbosExec.logger.debug('Sending ping to conductor');
96
+ currWebsocket.ping();
97
+ }
106
98
  }, this.pingPeriodMs);
107
99
  }
108
100
  dispatchLoop() {
109
- if (this.websocket) {
101
+ if (this.websocket &&
102
+ (this.websocket.readyState === ws_1.default.OPEN || this.websocket.readyState === ws_1.default.CONNECTING)) {
110
103
  this.dbosExec.logger.warn('Conductor websocket already exists');
111
104
  return;
112
105
  }
106
+ clearTimeout(this.pingIntervalTimeout?.timeout);
107
+ clearInterval(this.pingIntervalTimeout?.interval);
108
+ clearTimeout(this.reconnectTimeout);
109
+ this.reconnectTimeout = undefined;
113
110
  if (this.isShuttingDown) {
114
111
  this.dbosExec.logger.debug('Not starting dispatch loop as conductor is shutting down');
115
112
  return;
@@ -117,27 +114,30 @@ class Conductor {
117
114
  try {
118
115
  this.dbosExec.logger.debug(`Connecting to conductor at ${this.url}`);
119
116
  // Start a new websocket connection
120
- this.websocket = new ws_1.default(this.url, { handshakeTimeout: 5000 });
121
- this.websocket.on('open', () => {
117
+ const currWebsocket = new ws_1.default(this.url, { handshakeTimeout: 5000 });
118
+ this.websocket = currWebsocket;
119
+ // Start ping interval
120
+ const currPing = { interval: undefined, timeout: undefined };
121
+ this.setPingInterval(currWebsocket, currPing);
122
+ this.pingIntervalTimeout = currPing;
123
+ currWebsocket.on('open', () => {
122
124
  this.dbosExec.logger.debug('Opened connection to DBOS conductor');
123
- this.setPingInterval();
125
+ clearTimeout(currPing.timeout);
124
126
  });
125
- this.websocket.on('pong', () => {
127
+ currWebsocket.on('pong', () => {
126
128
  this.dbosExec.logger.debug('Received pong from conductor');
127
- if (this.pingTimeout) {
128
- clearTimeout(this.pingTimeout);
129
- this.pingTimeout = undefined;
130
- }
129
+ clearTimeout(currPing.timeout);
131
130
  });
132
- this.websocket.on('message', async (data) => {
131
+ currWebsocket.on('message', async (data) => {
133
132
  this.dbosExec.logger.debug(`Received message from conductor: ${data}`);
134
133
  const baseMsg = JSON.parse(data);
135
134
  const msgType = baseMsg.type;
136
135
  let errorMsg = undefined;
136
+ clearTimeout(currPing.timeout);
137
137
  switch (msgType) {
138
138
  case protocol.MessageType.EXECUTOR_INFO:
139
139
  const infoResp = new protocol.ExecutorInfoResponse(baseMsg.request_id, utils_1.globalParams.executorID, utils_1.globalParams.appVersion, (0, node_os_1.hostname)());
140
- this.websocket.send(JSON.stringify(infoResp));
140
+ currWebsocket.send(JSON.stringify(infoResp));
141
141
  this.dbosExec.logger.info('Connected to DBOS conductor');
142
142
  break;
143
143
  case protocol.MessageType.RECOVERY:
@@ -152,7 +152,7 @@ class Conductor {
152
152
  success = false;
153
153
  }
154
154
  const recoveryResp = new protocol.RecoveryResponse(baseMsg.request_id, success, errorMsg);
155
- this.websocket.send(JSON.stringify(recoveryResp));
155
+ currWebsocket.send(JSON.stringify(recoveryResp));
156
156
  break;
157
157
  case protocol.MessageType.CANCEL:
158
158
  const cancelMsg = baseMsg;
@@ -166,7 +166,7 @@ class Conductor {
166
166
  cancelSuccess = false;
167
167
  }
168
168
  const cancelResp = new protocol.CancelResponse(baseMsg.request_id, cancelSuccess, errorMsg);
169
- this.websocket.send(JSON.stringify(cancelResp));
169
+ currWebsocket.send(JSON.stringify(cancelResp));
170
170
  break;
171
171
  case protocol.MessageType.RESUME:
172
172
  const resumeMsg = baseMsg;
@@ -180,7 +180,7 @@ class Conductor {
180
180
  resumeSuccess = false;
181
181
  }
182
182
  const resumeResp = new protocol.ResumeResponse(baseMsg.request_id, resumeSuccess, errorMsg);
183
- this.websocket.send(JSON.stringify(resumeResp));
183
+ currWebsocket.send(JSON.stringify(resumeResp));
184
184
  break;
185
185
  case protocol.MessageType.RESTART:
186
186
  const restartMsg = baseMsg;
@@ -194,7 +194,7 @@ class Conductor {
194
194
  restartSuccess = false;
195
195
  }
196
196
  const restartResp = new protocol.RestartResponse(baseMsg.request_id, restartSuccess, errorMsg);
197
- this.websocket.send(JSON.stringify(restartResp));
197
+ currWebsocket.send(JSON.stringify(restartResp));
198
198
  break;
199
199
  case protocol.MessageType.FORK_WORKFLOW:
200
200
  const forkMsg = baseMsg;
@@ -211,7 +211,7 @@ class Conductor {
211
211
  newWorkflowID = undefined;
212
212
  }
213
213
  const forkResp = new protocol.ForkWorkflowResponse(baseMsg.request_id, newWorkflowID, errorMsg);
214
- this.websocket.send(JSON.stringify(forkResp));
214
+ currWebsocket.send(JSON.stringify(forkResp));
215
215
  break;
216
216
  case protocol.MessageType.LIST_WORKFLOWS:
217
217
  const listWFMsg = baseMsg;
@@ -240,7 +240,7 @@ class Conductor {
240
240
  this.dbosExec.logger.error(errorMsg);
241
241
  }
242
242
  const wfsResp = new protocol.ListWorkflowsResponse(listWFMsg.request_id, workflowsOutput, errorMsg);
243
- this.websocket.send(JSON.stringify(wfsResp));
243
+ currWebsocket.send(JSON.stringify(wfsResp));
244
244
  break;
245
245
  case protocol.MessageType.LIST_QUEUED_WORKFLOWS:
246
246
  const listQueuedWFMsg = baseMsg;
@@ -266,7 +266,7 @@ class Conductor {
266
266
  this.dbosExec.logger.error(errorMsg);
267
267
  }
268
268
  const queuedWfsResp = new protocol.ListQueuedWorkflowsResponse(listQueuedWFMsg.request_id, queuedWFOutput, errorMsg);
269
- this.websocket.send(JSON.stringify(queuedWfsResp));
269
+ currWebsocket.send(JSON.stringify(queuedWfsResp));
270
270
  break;
271
271
  case protocol.MessageType.GET_WORKFLOW:
272
272
  const getWFMsg = baseMsg;
@@ -282,7 +282,7 @@ class Conductor {
282
282
  this.dbosExec.logger.error(errorMsg);
283
283
  }
284
284
  const getWFResp = new protocol.GetWorkflowResponse(getWFMsg.request_id, wfOutput, errorMsg);
285
- this.websocket.send(JSON.stringify(getWFResp));
285
+ currWebsocket.send(JSON.stringify(getWFResp));
286
286
  break;
287
287
  case protocol.MessageType.EXIST_PENDING_WORKFLOWS:
288
288
  const existPendingMsg = baseMsg;
@@ -296,7 +296,7 @@ class Conductor {
296
296
  this.dbosExec.logger.error(errorMsg);
297
297
  }
298
298
  const existPendingResp = new protocol.ExistPendingWorkflowsResponse(baseMsg.request_id, hasPendingWFs, errorMsg);
299
- this.websocket.send(JSON.stringify(existPendingResp));
299
+ currWebsocket.send(JSON.stringify(existPendingResp));
300
300
  break;
301
301
  case protocol.MessageType.LIST_STEPS:
302
302
  const listStepsMessage = baseMsg;
@@ -310,7 +310,7 @@ class Conductor {
310
310
  this.dbosExec.logger.error(errorMsg);
311
311
  }
312
312
  const listStepsResponse = new protocol.ListStepsResponse(listStepsMessage.request_id, workflowSteps, errorMsg);
313
- this.websocket.send(JSON.stringify(listStepsResponse));
313
+ currWebsocket.send(JSON.stringify(listStepsResponse));
314
314
  break;
315
315
  case protocol.MessageType.RETENTION:
316
316
  const retentionMessage = baseMsg;
@@ -327,49 +327,55 @@ class Conductor {
327
327
  this.dbosExec.logger.error(errorMsg);
328
328
  }
329
329
  const retentionResponse = new protocol.RetentionResponse(retentionMessage.request_id, retentionSuccess, errorMsg);
330
- this.websocket.send(JSON.stringify(retentionResponse));
330
+ currWebsocket.send(JSON.stringify(retentionResponse));
331
331
  break;
332
332
  default:
333
333
  this.dbosExec.logger.warn(`Unknown message type: ${baseMsg.type}`);
334
334
  // Still need to send a response to the conductor
335
335
  const unknownResp = new protocol.BaseResponse(baseMsg.type, baseMsg.request_id, 'Unknown message type');
336
- this.websocket.send(JSON.stringify(unknownResp));
336
+ currWebsocket.send(JSON.stringify(unknownResp));
337
337
  }
338
338
  });
339
- this.websocket.on('close', () => {
339
+ currWebsocket.on('close', () => {
340
340
  if (this.isShuttingDown) {
341
341
  this.dbosExec.logger.info('Shutdown Conductor connection');
342
- this.isClosed = true;
343
342
  return;
344
343
  }
345
344
  else if (this.reconnectTimeout === undefined) {
346
345
  this.dbosExec.logger.warn('Connection to conductor lost. Reconnecting.');
347
- this.resetWebsocket();
346
+ this.resetWebsocket(currWebsocket, currPing);
348
347
  }
349
348
  });
350
- this.websocket.on('unexpected-response', async (_, res) => {
349
+ currWebsocket.on('unexpected-response', async (_, res) => {
351
350
  const resBody = await (0, consumers_1.json)(res);
352
351
  this.dbosExec.logger.warn(`Unexpected response from conductor: ${res.statusCode} ${res.statusMessage}. Details: ${JSON.stringify(resBody)}`);
353
- this.resetWebsocket();
352
+ if (this.reconnectTimeout === undefined) {
353
+ this.resetWebsocket(currWebsocket, currPing);
354
+ }
354
355
  });
355
- this.websocket.on('error', (err) => {
356
+ currWebsocket.on('error', (err) => {
356
357
  this.dbosExec.logger.warn(`Unexpected exception in connection to conductor. Reconnecting: ${err.message}`);
357
- this.resetWebsocket();
358
+ if (this.reconnectTimeout === undefined) {
359
+ this.resetWebsocket(currWebsocket, currPing);
360
+ }
358
361
  });
359
362
  }
360
363
  catch (e) {
361
364
  this.dbosExec.logger.warn(`Error in conductor loop. Reconnecting: ${e.message}`);
362
- this.resetWebsocket();
365
+ if (this.reconnectTimeout === undefined) {
366
+ this.resetWebsocket(this.websocket, this.pingIntervalTimeout);
367
+ }
363
368
  }
364
369
  }
365
370
  stop() {
366
371
  this.isShuttingDown = true;
367
- clearInterval(this.pingInterval);
368
- clearTimeout(this.pingTimeout);
372
+ clearInterval(this.pingIntervalTimeout?.interval);
373
+ clearTimeout(this.pingIntervalTimeout?.timeout);
369
374
  clearTimeout(this.reconnectTimeout);
370
375
  if (this.websocket) {
371
376
  this.websocket.close();
372
377
  }
378
+ this.isClosed = true;
373
379
  }
374
380
  }
375
381
  exports.Conductor = Conductor;
@@ -1 +1 @@
1
- {"version":3,"file":"conductor.js","sourceRoot":"","sources":["../../../src/conductor/conductor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conductor.js","sourceRoot":"","sources":["../../../src/conductor/conductor.ts"],"names":[],"mappings":"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"}