( schedule: DatabaseScheduleExecutionTarget, requestId: string, expectedLastQueuedAt: Date, context: string )
| 313 | } |
| 314 | |
| 315 | async function markClaimedScheduleFailed( |
| 316 | schedule: DatabaseScheduleExecutionTarget, |
| 317 | requestId: string, |
| 318 | expectedLastQueuedAt: Date, |
| 319 | context: string |
| 320 | ): Promise<void> { |
| 321 | const now = new Date() |
| 322 | await db |
| 323 | .update(workflowSchedule) |
| 324 | .set(buildScheduleFailureUpdate(now, getScheduleNextRunAt(schedule, now))) |
| 325 | .where( |
| 326 | and( |
| 327 | eq(workflowSchedule.id, schedule.id), |
| 328 | isNull(workflowSchedule.archivedAt), |
| 329 | eq(workflowSchedule.lastQueuedAt, expectedLastQueuedAt) |
| 330 | ) |
| 331 | ) |
| 332 | .catch((error) => { |
| 333 | logger.error(`[${requestId}] ${context}`, error) |
| 334 | throw error |
| 335 | }) |
| 336 | } |
| 337 | |
| 338 | async function deferClaimedScheduleAfterQueueFailure( |
| 339 | schedule: ClaimedSchedule, |
no test coverage detected