@dbos-inc/dbos-sdk 2.10.11-preview → 2.10.17-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 (39) hide show
  1. package/dist/schemas/system_db_schema.d.ts +4 -12
  2. package/dist/schemas/system_db_schema.d.ts.map +1 -1
  3. package/dist/src/client.d.ts.map +1 -1
  4. package/dist/src/client.js +8 -5
  5. package/dist/src/client.js.map +1 -1
  6. package/dist/src/dbos-executor.d.ts +1 -2
  7. package/dist/src/dbos-executor.d.ts.map +1 -1
  8. package/dist/src/dbos-executor.js +12 -18
  9. package/dist/src/dbos-executor.js.map +1 -1
  10. package/dist/src/dbos-runtime/config.d.ts.map +1 -1
  11. package/dist/src/dbos-runtime/config.js +3 -13
  12. package/dist/src/dbos-runtime/config.js.map +1 -1
  13. package/dist/src/dbos.d.ts +1 -6
  14. package/dist/src/dbos.d.ts.map +1 -1
  15. package/dist/src/dbos.js +0 -9
  16. package/dist/src/dbos.js.map +1 -1
  17. package/dist/src/eventreceiver.d.ts +13 -8
  18. package/dist/src/eventreceiver.d.ts.map +1 -1
  19. package/dist/src/index.d.ts +1 -1
  20. package/dist/src/index.d.ts.map +1 -1
  21. package/dist/src/index.js.map +1 -1
  22. package/dist/src/system_database.d.ts +5 -16
  23. package/dist/src/system_database.d.ts.map +1 -1
  24. package/dist/src/system_database.js +146 -257
  25. package/dist/src/system_database.js.map +1 -1
  26. package/dist/src/testing/testing_runtime.js +1 -1
  27. package/dist/src/testing/testing_runtime.js.map +1 -1
  28. package/dist/src/wfqueue.d.ts +3 -0
  29. package/dist/src/wfqueue.d.ts.map +1 -1
  30. package/dist/src/wfqueue.js +2 -0
  31. package/dist/src/wfqueue.js.map +1 -1
  32. package/dist/src/workflow.d.ts +0 -16
  33. package/dist/src/workflow.d.ts.map +1 -1
  34. package/dist/src/workflow.js +4 -2
  35. package/dist/src/workflow.js.map +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/migrations/20252523000000_consolidate_inputs.js +22 -0
  38. package/migrations/20252528000000_consolidate_queues.js +30 -0
  39. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
@@ -72,70 +72,70 @@ class NotificationMap {
72
72
  }
73
73
  }
74
74
  async function insertWorkflowStatus(client, initStatus) {
75
- const { rows } = await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status (
76
- workflow_uuid,
77
- status,
78
- name,
79
- class_name,
80
- config_name,
81
- queue_name,
82
- authenticated_user,
83
- assumed_role,
84
- authenticated_roles,
85
- request,
86
- executor_id,
87
- application_version,
88
- application_id,
89
- created_at,
90
- recovery_attempts,
91
- updated_at,
92
- workflow_timeout_ms,
93
- workflow_deadline_epoch_ms
94
- ) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18)
95
- ON CONFLICT (workflow_uuid)
96
- DO UPDATE SET
97
- recovery_attempts = workflow_status.recovery_attempts + 1,
98
- updated_at = EXCLUDED.updated_at,
99
- executor_id = EXCLUDED.executor_id
100
- RETURNING recovery_attempts, status, name, class_name, config_name, queue_name, workflow_deadline_epoch_ms`, [
101
- initStatus.workflowUUID,
102
- initStatus.status,
103
- initStatus.workflowName,
104
- initStatus.workflowClassName,
105
- initStatus.workflowConfigName,
106
- initStatus.queueName ?? null,
107
- initStatus.authenticatedUser,
108
- initStatus.assumedRole,
109
- JSON.stringify(initStatus.authenticatedRoles),
110
- JSON.stringify(initStatus.request),
111
- initStatus.executorId,
112
- initStatus.applicationVersion ?? null,
113
- initStatus.applicationID,
114
- initStatus.createdAt,
115
- initStatus.status === workflow_1.StatusString.ENQUEUED ? 0 : 1,
116
- initStatus.updatedAt ?? Date.now(),
117
- initStatus.timeoutMS ?? null,
118
- initStatus.deadlineEpochMS ?? null,
119
- ]);
120
- if (rows.length === 0) {
121
- throw new Error(`Attempt to insert workflow ${initStatus.workflowUUID} failed`);
75
+ try {
76
+ const { rows } = await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status (
77
+ workflow_uuid,
78
+ status,
79
+ name,
80
+ class_name,
81
+ config_name,
82
+ queue_name,
83
+ authenticated_user,
84
+ assumed_role,
85
+ authenticated_roles,
86
+ request,
87
+ executor_id,
88
+ application_version,
89
+ application_id,
90
+ created_at,
91
+ recovery_attempts,
92
+ updated_at,
93
+ workflow_timeout_ms,
94
+ workflow_deadline_epoch_ms,
95
+ inputs,
96
+ deduplication_id,
97
+ priority
98
+ ) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21)
99
+ ON CONFLICT (workflow_uuid)
100
+ DO UPDATE SET
101
+ recovery_attempts = workflow_status.recovery_attempts + 1,
102
+ updated_at = EXCLUDED.updated_at,
103
+ executor_id = EXCLUDED.executor_id
104
+ RETURNING recovery_attempts, status, name, class_name, config_name, queue_name, workflow_deadline_epoch_ms`, [
105
+ initStatus.workflowUUID,
106
+ initStatus.status,
107
+ initStatus.workflowName,
108
+ initStatus.workflowClassName,
109
+ initStatus.workflowConfigName,
110
+ initStatus.queueName ?? null,
111
+ initStatus.authenticatedUser,
112
+ initStatus.assumedRole,
113
+ JSON.stringify(initStatus.authenticatedRoles),
114
+ JSON.stringify(initStatus.request),
115
+ initStatus.executorId,
116
+ initStatus.applicationVersion ?? null,
117
+ initStatus.applicationID,
118
+ initStatus.createdAt,
119
+ initStatus.status === workflow_1.StatusString.ENQUEUED ? 0 : 1,
120
+ initStatus.updatedAt ?? Date.now(),
121
+ initStatus.timeoutMS ?? null,
122
+ initStatus.deadlineEpochMS ?? null,
123
+ initStatus.input ?? null,
124
+ initStatus.deduplicationID ?? null,
125
+ initStatus.priority,
126
+ ]);
127
+ if (rows.length === 0) {
128
+ throw new Error(`Attempt to insert workflow ${initStatus.workflowUUID} failed`);
129
+ }
130
+ return rows[0];
122
131
  }
123
- return rows[0];
124
- }
125
- async function insertWorkflowInputs(client, workflowID, serializedInputs) {
126
- const { rows } = await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_inputs
127
- (workflow_uuid, inputs) VALUES($1, $2)
128
- ON CONFLICT (workflow_uuid) DO UPDATE SET workflow_uuid = excluded.workflow_uuid
129
- RETURNING inputs`, [workflowID, serializedInputs]);
130
- if (rows.length === 0) {
131
- throw new Error(`Attempt to insert workflow ${workflowID} inputs failed`);
132
+ catch (error) {
133
+ const err = error;
134
+ if (err.code === '23505') {
135
+ throw new error_1.DBOSQueueDuplicatedError(initStatus.workflowUUID, initStatus.queueName ?? '', initStatus.deduplicationID ?? '');
136
+ }
137
+ throw error;
132
138
  }
133
- return rows[0].inputs;
134
- }
135
- async function deleteQueuedWorkflows(client, workflowID) {
136
- await client.query(`DELETE FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue WHERE workflow_uuid = $1`, [
137
- workflowID,
138
- ]);
139
139
  }
140
140
  async function getWorkflowStatusValue(client, workflowID) {
141
141
  const { rows } = await client.query(`SELECT status FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status WHERE workflow_uuid=$1`, [workflowID]);
@@ -160,10 +160,16 @@ async function updateWorkflowStatus(client, workflowID, status, options = {}) {
160
160
  if (update.resetDeadline) {
161
161
  setClause += `, workflow_deadline_epoch_ms = NULL`;
162
162
  }
163
- if (update.queueName) {
164
- const param = args.push(update.queueName);
163
+ if (update.queueName !== undefined) {
164
+ const param = args.push(update.queueName ?? undefined);
165
165
  setClause += `, queue_name=$${param}`;
166
166
  }
167
+ if (update.resetDeduplicationID) {
168
+ setClause += `, deduplication_id = NULL`;
169
+ }
170
+ if (update.resetStartedAtEpochMs) {
171
+ setClause += `, started_at_epoch_ms = NULL`;
172
+ }
167
173
  const where = options.where ?? {};
168
174
  if (where.status) {
169
175
  const param = args.push(where.status);
@@ -221,8 +227,10 @@ function mapWorkflowStatus(row) {
221
227
  applicationID: row.application_id,
222
228
  recoveryAttempts: Number(row.recovery_attempts),
223
229
  input: row.inputs,
224
- timeoutMS: row.workflow_timeout_ms ?? undefined,
225
- deadlineEpochMS: row.workflow_deadline_epoch_ms ?? undefined,
230
+ timeoutMS: row.workflow_timeout_ms ? Number(row.workflow_timeout_ms) : undefined,
231
+ deadlineEpochMS: row.workflow_deadline_epoch_ms ? Number(row.workflow_deadline_epoch_ms) : undefined,
232
+ deduplicationID: row.deduplication_id ?? undefined,
233
+ priority: row.priority ?? 0,
226
234
  };
227
235
  }
228
236
  class PostgresSystemDatabase {
@@ -335,7 +343,7 @@ class PostgresSystemDatabase {
335
343
  await pgSystemClient.query(`DROP DATABASE IF EXISTS ${dbosConfig.system_database};`);
336
344
  await pgSystemClient.end();
337
345
  }
338
- async initWorkflowStatus(initStatus, serializedInputs, maxRetries) {
346
+ async initWorkflowStatus(initStatus, maxRetries) {
339
347
  const client = await this.pool.connect();
340
348
  try {
341
349
  await client.query('BEGIN ISOLATION LEVEL READ COMMITTED');
@@ -370,11 +378,7 @@ class PostgresSystemDatabase {
370
378
  this.logger.debug(`Workflow ${initStatus.workflowUUID} attempt number: ${attempts}.`);
371
379
  const status = resRow.status;
372
380
  const deadlineEpochMS = resRow.workflow_deadline_epoch_ms ?? undefined;
373
- const inputResult = await insertWorkflowInputs(client, initStatus.workflowUUID, serializedInputs);
374
- if (serializedInputs !== inputResult) {
375
- this.logger.warn(`Workflow inputs for ${initStatus.workflowUUID} changed since the first call! Use the original inputs.`);
376
- }
377
- return { serializedInputs: inputResult, status, deadlineEpochMS };
381
+ return { status, deadlineEpochMS };
378
382
  }
379
383
  finally {
380
384
  await client.query('COMMIT');
@@ -384,7 +388,9 @@ class PostgresSystemDatabase {
384
388
  async recordWorkflowOutput(workflowID, status) {
385
389
  const client = await this.pool.connect();
386
390
  try {
387
- await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.SUCCESS, { update: { output: status.output } });
391
+ await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.SUCCESS, {
392
+ update: { output: status.output, resetDeduplicationID: true },
393
+ });
388
394
  }
389
395
  finally {
390
396
  client.release();
@@ -393,7 +399,9 @@ class PostgresSystemDatabase {
393
399
  async recordWorkflowError(workflowID, status) {
394
400
  const client = await this.pool.connect();
395
401
  try {
396
- await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.ERROR, { update: { error: status.error } });
402
+ await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.ERROR, {
403
+ update: { error: status.error, resetDeduplicationID: true },
404
+ });
397
405
  }
398
406
  finally {
399
407
  client.release();
@@ -408,14 +416,6 @@ class PostgresSystemDatabase {
408
416
  queueName: i.queue_name,
409
417
  }));
410
418
  }
411
- async getWorkflowInputs(workflowID) {
412
- const { rows } = await this.pool.query(`SELECT inputs FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_inputs
413
- WHERE workflow_uuid=$1`, [workflowID]);
414
- if (rows.length === 0) {
415
- return null;
416
- }
417
- return rows[0].inputs;
418
- }
419
419
  async #getOperationResultAndThrowIfCancelled(client, workflowID, functionID) {
420
420
  await this.#checkIfCanceled(client, workflowID);
421
421
  const { rows } = await client.query(`SELECT output, error, child_workflow_id, function_name
@@ -488,8 +488,10 @@ class PostgresSystemDatabase {
488
488
  recoveryAttempts: 0,
489
489
  updatedAt: now,
490
490
  timeoutMS: options.timeoutMS ?? workflowStatus.timeoutMS,
491
+ input: workflowStatus.input,
492
+ deduplicationID: undefined,
493
+ priority: 0,
491
494
  });
492
- await insertWorkflowInputs(client, newWorkflowID, workflowStatus.input);
493
495
  if (startStep > 0) {
494
496
  const query = `INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs
495
497
  (workflow_uuid, function_id, output, error, function_name, child_workflow_id )
@@ -498,7 +500,6 @@ class PostgresSystemDatabase {
498
500
  WHERE workflow_uuid = $2 AND function_id < $3`;
499
501
  await client.query(query, [newWorkflowID, workflowID, startStep]);
500
502
  }
501
- await this.#enqueueWorkflow(client, newWorkflowID, utils_1.INTERNAL_QUEUE_NAME);
502
503
  await client.query('COMMIT');
503
504
  return newWorkflowID;
504
505
  }
@@ -830,9 +831,10 @@ class PostgresSystemDatabase {
830
831
  await client.query('ROLLBACK');
831
832
  return;
832
833
  }
833
- // Remove workflow from queues table
834
- await deleteQueuedWorkflows(client, workflowID);
835
- await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.CANCELLED);
834
+ // Set the workflow's status to CANCELLED and remove it from any queue it is on
835
+ await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.CANCELLED, {
836
+ update: { queueName: null, resetDeduplicationID: true, resetStartedAtEpochMs: true },
837
+ });
836
838
  await client.query('COMMIT');
837
839
  }
838
840
  catch (error) {
@@ -879,17 +881,17 @@ class PostgresSystemDatabase {
879
881
  }
880
882
  return;
881
883
  }
882
- // Remove the workflow from the queues table so resume can safely be called on an ENQUEUED workflow
883
- await deleteQueuedWorkflows(client, workflowID);
884
+ // Set the workflow's status to ENQUEUED and reset recovery attempts and deadline.
884
885
  await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.ENQUEUED, {
885
886
  update: {
886
887
  queueName: utils_1.INTERNAL_QUEUE_NAME,
887
888
  resetRecoveryAttempts: true,
888
889
  resetDeadline: true,
890
+ resetDeduplicationID: true,
891
+ resetStartedAtEpochMs: true,
889
892
  },
890
893
  throwOnFailure: false,
891
894
  });
892
- await this.#enqueueWorkflow(client, workflowID, utils_1.INTERNAL_QUEUE_NAME);
893
895
  await client.query('COMMIT');
894
896
  }
895
897
  catch (error) {
@@ -1097,9 +1099,7 @@ class PostgresSystemDatabase {
1097
1099
  async listWorkflows(input) {
1098
1100
  const schemaName = dbos_executor_1.DBOSExecutor.systemDBSchemaName;
1099
1101
  input.sortDesc = input.sortDesc ?? false; // By default, sort in ascending order
1100
- let query = this.knexDB(`${schemaName}.workflow_status`)
1101
- .join(`${schemaName}.workflow_inputs`, `${schemaName}.workflow_status.workflow_uuid`, `${schemaName}.workflow_inputs.workflow_uuid`)
1102
- .orderBy(`${schemaName}.workflow_status.created_at`, input.sortDesc ? 'desc' : 'asc');
1102
+ let query = this.knexDB(`${schemaName}.workflow_status`).orderBy(`${schemaName}.workflow_status.created_at`, input.sortDesc ? 'desc' : 'asc');
1103
1103
  if (input.workflowName) {
1104
1104
  query = query.where(`${schemaName}.workflow_status.name`, input.workflowName);
1105
1105
  }
@@ -1136,15 +1136,15 @@ class PostgresSystemDatabase {
1136
1136
  async listQueuedWorkflows(input) {
1137
1137
  const schemaName = dbos_executor_1.DBOSExecutor.systemDBSchemaName;
1138
1138
  const sortDesc = input.sortDesc ?? false; // By default, sort in ascending order
1139
- let query = this.knexDB(`${schemaName}.workflow_queue`)
1140
- .join(`${schemaName}.workflow_inputs`, `${schemaName}.workflow_queue.workflow_uuid`, `${schemaName}.workflow_inputs.workflow_uuid`)
1141
- .join(`${schemaName}.workflow_status`, `${schemaName}.workflow_queue.workflow_uuid`, `${schemaName}.workflow_status.workflow_uuid`)
1139
+ let query = this.knexDB(`${schemaName}.workflow_status`)
1140
+ .whereNotNull(`${schemaName}.workflow_status.queue_name`)
1141
+ .whereIn(`${schemaName}.workflow_status.status`, [workflow_1.StatusString.ENQUEUED, workflow_1.StatusString.PENDING])
1142
1142
  .orderBy(`${schemaName}.workflow_status.created_at`, sortDesc ? 'desc' : 'asc');
1143
1143
  if (input.workflowName) {
1144
- query = query.whereRaw(`${schemaName}.workflow_status.name = ?`, [input.workflowName]);
1144
+ query = query.where(`${schemaName}.workflow_status.name`, input.workflowName);
1145
1145
  }
1146
1146
  if (input.queueName) {
1147
- query = query.whereRaw(`${schemaName}.workflow_status.queue_name = ?`, [input.queueName]);
1147
+ query = query.where(`${schemaName}.workflow_status.queue_name`, input.queueName);
1148
1148
  }
1149
1149
  if (input.startTime) {
1150
1150
  query = query.where(`${schemaName}.workflow_status.created_at`, '>=', new Date(input.startTime).getTime());
@@ -1153,7 +1153,7 @@ class PostgresSystemDatabase {
1153
1153
  query = query.where(`${schemaName}.workflow_status.created_at`, '<=', new Date(input.endTime).getTime());
1154
1154
  }
1155
1155
  if (input.status) {
1156
- query = query.whereRaw(`${schemaName}.workflow_status.status = ?`, [input.status]);
1156
+ query = query.where(`${schemaName}.workflow_status.status`, input.status);
1157
1157
  }
1158
1158
  if (input.limit) {
1159
1159
  query = query.limit(input.limit);
@@ -1164,115 +1164,13 @@ class PostgresSystemDatabase {
1164
1164
  const rows = await query;
1165
1165
  return rows.map(mapWorkflowStatus);
1166
1166
  }
1167
- async getWorkflowQueue(input) {
1168
- // Create the initial query with a join to workflow_status table to get executor_id
1169
- let query = this.knexDB(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue as wq`)
1170
- .join(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status as ws`, 'wq.workflow_uuid', '=', 'ws.workflow_uuid')
1171
- .orderBy('wq.created_at_epoch_ms', 'desc');
1172
- if (input.queueName) {
1173
- query = query.where('wq.queue_name', input.queueName);
1174
- }
1175
- if (input.startTime) {
1176
- query = query.where('wq.created_at_epoch_ms', '>=', new Date(input.startTime).getTime());
1177
- }
1178
- if (input.endTime) {
1179
- query = query.where('wq.created_at_epoch_ms', '<=', new Date(input.endTime).getTime());
1180
- }
1181
- if (input.limit) {
1182
- query = query.limit(input.limit);
1183
- }
1184
- const rows = await query
1185
- .select({
1186
- workflow_uuid: 'wq.workflow_uuid',
1187
- executor_id: 'ws.executor_id',
1188
- queue_name: 'wq.queue_name',
1189
- created_at_epoch_ms: 'wq.created_at_epoch_ms',
1190
- started_at_epoch_ms: 'wq.started_at_epoch_ms',
1191
- completed_at_epoch_ms: 'wq.completed_at_epoch_ms',
1192
- })
1193
- .then((rows) => rows);
1194
- const workflows = rows.map((row) => {
1195
- return {
1196
- workflowID: row.workflow_uuid,
1197
- executorID: row.executor_id,
1198
- queueName: row.queue_name,
1199
- createdAt: row.created_at_epoch_ms,
1200
- startedAt: row.started_at_epoch_ms,
1201
- completedAt: row.completed_at_epoch_ms,
1202
- };
1203
- });
1204
- return { workflows };
1205
- }
1206
- async #enqueueWorkflow(client, workflowID, queueName, enqueueOptions) {
1207
- const dedupID = enqueueOptions?.deduplicationID ?? null;
1208
- const priority = enqueueOptions?.priority ?? 0;
1209
- try {
1210
- await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue (workflow_uuid, queue_name, deduplication_id, priority)
1211
- VALUES ($1, $2, $3, $4)
1212
- ON CONFLICT (workflow_uuid)
1213
- DO NOTHING;`, [workflowID, queueName, dedupID, priority]);
1214
- }
1215
- catch (error) {
1216
- const err = error;
1217
- if (err.code === '23505') {
1218
- // unique constraint violation (only expected for the INSERT query)
1219
- throw new error_1.DBOSQueueDuplicatedError(workflowID, queueName, dedupID ?? '');
1220
- }
1221
- this.logger.error(`Error enqueuing workflow ${workflowID} to queue ${queueName}`);
1222
- throw error;
1223
- }
1224
- }
1225
- async enqueueWorkflow(workflowId, queueName, enqueueOptions) {
1226
- const client = await this.pool.connect();
1227
- try {
1228
- await this.#enqueueWorkflow(client, workflowId, queueName, enqueueOptions);
1229
- }
1230
- finally {
1231
- client.release();
1232
- }
1233
- }
1234
1167
  async clearQueueAssignment(workflowID) {
1235
- const client = await this.pool.connect();
1236
- try {
1237
- await client.query('BEGIN ISOLATION LEVEL READ COMMITTED');
1238
- // Reset the start time in the queue to mark it as not started
1239
- const wqRes = await client.query(`UPDATE ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue
1240
- SET started_at_epoch_ms = NULL
1241
- WHERE workflow_uuid = $1 AND completed_at_epoch_ms IS NULL;`, [workflowID]);
1242
- // If no rows were affected, the workflow is not anymore in the queue or was already completed
1243
- if (wqRes.rowCount === 0) {
1244
- await client.query('ROLLBACK');
1245
- return false;
1246
- }
1247
- // Reset the status of the task to "ENQUEUED"
1248
- await updateWorkflowStatus(client, workflowID, workflow_1.StatusString.ENQUEUED);
1249
- await client.query('COMMIT');
1250
- return true;
1251
- }
1252
- catch (error) {
1253
- await client.query('ROLLBACK');
1254
- throw error;
1255
- }
1256
- finally {
1257
- client.release();
1258
- }
1259
- }
1260
- async dequeueWorkflow(workflowID, queue) {
1261
- const client = await this.pool.connect();
1262
- try {
1263
- if (queue.rateLimit) {
1264
- const time = Date.now();
1265
- await client.query(`UPDATE ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue
1266
- SET completed_at_epoch_ms = $2
1267
- WHERE workflow_uuid = $1;`, [workflowID, time]);
1268
- }
1269
- else {
1270
- await deleteQueuedWorkflows(client, workflowID);
1271
- }
1272
- }
1273
- finally {
1274
- client.release();
1275
- }
1168
+ // Reset the status of the task from "PENDING" to "ENQUEUED"
1169
+ const wqRes = await this.pool.query(`UPDATE ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status
1170
+ SET started_at_epoch_ms = NULL, status = $2
1171
+ WHERE workflow_uuid = $1 AND queue_name is NOT NULL AND status = $3`, [workflowID, workflow_1.StatusString.ENQUEUED, workflow_1.StatusString.PENDING]);
1172
+ // If no rows were affected, the workflow is not anymore in the queue or was already completed
1173
+ return (wqRes.rowCount ?? 0) > 0;
1276
1174
  }
1277
1175
  async findAndMarkStartableWorkflows(queue, executorID, appVersion) {
1278
1176
  const startTimeMs = Date.now();
@@ -1282,64 +1180,67 @@ class PostgresSystemDatabase {
1282
1180
  // If there is a rate limit, compute how many functions have started in its period.
1283
1181
  let numRecentQueries = 0;
1284
1182
  if (queue.rateLimit) {
1285
- const numRecentQueriesS = (await trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue`)
1183
+ const numRecentQueriesS = (await trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status`)
1286
1184
  .count()
1287
1185
  .where('queue_name', queue.name)
1186
+ .andWhere('status', '<>', workflow_1.StatusString.ENQUEUED)
1288
1187
  .andWhere('started_at_epoch_ms', '>', startTimeMs - limiterPeriodMS)
1289
1188
  .first()).count;
1290
1189
  numRecentQueries = parseInt(`${numRecentQueriesS}`);
1291
1190
  if (numRecentQueries >= queue.rateLimit.limitPerPeriod) {
1292
- return claimedIDs;
1191
+ return [];
1293
1192
  }
1294
1193
  }
1295
1194
  // Dequeue functions eligible for this worker and ordered by the time at which they were enqueued.
1296
1195
  // If there is a global or local concurrency limit N, select only the N oldest enqueued
1297
1196
  // functions, else select all of them.
1298
- // First lets figure out how many tasks are eligible for dequeue.
1299
- // This means figuring out how many unstarted tasks are within the local and global concurrency limits
1300
- const runningTasksSubquery = trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue as wq`)
1301
- .join(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status as ws`, 'wq.workflow_uuid', '=', 'ws.workflow_uuid')
1302
- .select('ws.executor_id')
1303
- .count('* as task_count')
1304
- .where('wq.queue_name', queue.name)
1305
- .whereNotNull('wq.started_at_epoch_ms') // started
1306
- .whereNull('wq.completed_at_epoch_ms') // not completed
1307
- .groupBy('ws.executor_id');
1308
- const runningTasksResult = await runningTasksSubquery;
1309
- const runningTasksResultDict = {};
1310
- runningTasksResult.forEach((row) => {
1311
- runningTasksResultDict[row.executor_id] = Number(row.task_count);
1312
- });
1313
- const runningTasksForThisWorker = runningTasksResultDict[executorID] || 0;
1314
1197
  let maxTasks = Infinity;
1315
- if (queue.workerConcurrency !== undefined) {
1316
- maxTasks = Math.max(0, queue.workerConcurrency - runningTasksForThisWorker);
1317
- }
1318
- if (queue.concurrency !== undefined) {
1319
- const totalRunningTasks = Object.values(runningTasksResultDict).reduce((acc, val) => acc + val, 0);
1320
- if (totalRunningTasks > queue.concurrency) {
1321
- this.logger.warn(`Total running tasks (${totalRunningTasks}) exceeds the global concurrency limit (${queue.concurrency})`);
1198
+ if (queue.workerConcurrency !== undefined || queue.concurrency !== undefined) {
1199
+ // Count how many workflows on this queue are currently PENDING both locally and globally.
1200
+ const runningTasksSubquery = trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status`)
1201
+ .select('executor_id')
1202
+ .count('* as task_count')
1203
+ .where('queue_name', queue.name)
1204
+ .andWhere('status', workflow_1.StatusString.PENDING)
1205
+ .groupBy('executor_id');
1206
+ const runningTasksResult = await runningTasksSubquery;
1207
+ const runningTasksResultDict = {};
1208
+ runningTasksResult.forEach((row) => {
1209
+ runningTasksResultDict[row.executor_id] = Number(row.task_count);
1210
+ });
1211
+ const runningTasksForThisWorker = runningTasksResultDict[executorID] || 0;
1212
+ if (queue.workerConcurrency !== undefined) {
1213
+ maxTasks = Math.max(0, queue.workerConcurrency - runningTasksForThisWorker);
1214
+ }
1215
+ if (queue.concurrency !== undefined) {
1216
+ const totalRunningTasks = Object.values(runningTasksResultDict).reduce((acc, val) => acc + val, 0);
1217
+ if (totalRunningTasks > queue.concurrency) {
1218
+ this.logger.warn(`Total running tasks (${totalRunningTasks}) exceeds the global concurrency limit (${queue.concurrency})`);
1219
+ }
1220
+ const availableTasks = Math.max(0, queue.concurrency - totalRunningTasks);
1221
+ maxTasks = Math.min(maxTasks, availableTasks);
1322
1222
  }
1323
- const availableTasks = Math.max(0, queue.concurrency - totalRunningTasks);
1324
- maxTasks = Math.min(maxTasks, availableTasks);
1325
1223
  }
1326
- // Lookup tasks
1327
- let query = trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue as wq`)
1328
- .join(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status as ws`, 'wq.workflow_uuid', '=', 'ws.workflow_uuid')
1329
- .whereNull('wq.completed_at_epoch_ms') // not completed
1330
- .whereNull('wq.started_at_epoch_ms') // not started
1331
- .andWhere('wq.queue_name', queue.name)
1224
+ // Retrieve the first max_tasks workflows in the queue.
1225
+ // Only retrieve workflows of the local version (or without version set)
1226
+ let query = trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status`)
1227
+ .where('status', workflow_1.StatusString.ENQUEUED)
1228
+ .andWhere('queue_name', queue.name)
1332
1229
  .andWhere((b) => {
1333
- b.whereNull('ws.application_version').orWhere('ws.application_version', appVersion);
1230
+ b.whereNull('application_version').orWhere('application_version', appVersion);
1334
1231
  })
1335
- .orderBy('wq.priority', 'asc')
1336
- .orderBy('wq.created_at_epoch_ms', 'asc')
1337
1232
  .forUpdate()
1338
1233
  .noWait();
1234
+ if (queue.priorityEnabled) {
1235
+ query = query.orderBy('priority', 'asc').orderBy('created_at', 'asc');
1236
+ }
1237
+ else {
1238
+ query = query.orderBy('created_at', 'asc');
1239
+ }
1339
1240
  if (maxTasks !== Infinity) {
1340
1241
  query = query.limit(maxTasks);
1341
1242
  }
1342
- const rows = (await query.select(['wq.workflow_uuid as workflow_uuid']));
1243
+ const rows = (await query.select(['workflow_uuid']));
1343
1244
  // Start the workflows
1344
1245
  const workflowIDs = rows.map((row) => row.workflow_uuid);
1345
1246
  for (const id of workflowIDs) {
@@ -1356,28 +1257,16 @@ class PostgresSystemDatabase {
1356
1257
  status: workflow_1.StatusString.PENDING,
1357
1258
  executor_id: executorID,
1358
1259
  application_version: appVersion,
1260
+ started_at_epoch_ms: startTimeMs,
1359
1261
  workflow_deadline_epoch_ms: trx.raw('CASE WHEN workflow_timeout_ms IS NOT NULL AND workflow_deadline_epoch_ms IS NULL THEN (EXTRACT(epoch FROM now()) * 1000)::bigint + workflow_timeout_ms ELSE workflow_deadline_epoch_ms END'),
1360
1262
  });
1361
1263
  if (res > 0) {
1362
1264
  claimedIDs.push(id);
1363
- await trx(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue`)
1364
- .where('workflow_uuid', id)
1365
- .update('started_at_epoch_ms', startTimeMs);
1366
1265
  }
1367
1266
  // If we did not update this record, probably someone else did. Count in either case.
1368
1267
  ++numRecentQueries;
1369
1268
  }
1370
1269
  }, { isolationLevel: 'repeatable read' });
1371
- // If we have a rate limit, garbage-collect all completed functions started
1372
- // before the period. If there's no limiter, there's no need--they were
1373
- // deleted on completion.
1374
- if (queue.rateLimit) {
1375
- await this.knexDB(`${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_queue`)
1376
- .whereNotNull('completed_at_epoch_ms')
1377
- .andWhere('queue_name', queue.name)
1378
- .andWhere('started_at_epoch_ms', '<', startTimeMs - limiterPeriodMS)
1379
- .delete();
1380
- }
1381
1270
  // Return the IDs of all functions we marked started
1382
1271
  return claimedIDs;
1383
1272
  }