MCPcopy Create free account
hub / github.com/compozy/agh / recoverRunByRequeue

Method recoverRunByRequeue

internal/task/manager.go:1351–1401  ·  view source on GitHub ↗
(
	ctx context.Context,
	taskRecord Task,
	run Run,
	recovery RunBootRecovery,
	actor ActorContext,
	previousStatus RunStatus,
	previousSessionID string,
)

Source from the content-addressed store, hash-verified

1349}
1350
1351func (m *Service) recoverRunByRequeue(
1352 ctx context.Context,
1353 taskRecord Task,
1354 run Run,
1355 recovery RunBootRecovery,
1356 actor ActorContext,
1357 previousStatus RunStatus,
1358 previousSessionID string,
1359) (*Run, error) {
1360 if previousStatus != TaskRunStatusClaimed {
1361 return nil, invalidRunRecoveryTransition(run, previousStatus, recovery.Action)
1362 }
1363
1364 run.Status = TaskRunStatusQueued
1365 run.ClaimedBy = nil
1366 run.ClaimedAt = time.Time{}
1367 run.SessionID = ""
1368 run.ClaimToken = ""
1369 run.ClaimTokenHash = ""
1370 run.LeaseUntil = time.Time{}
1371 run.HeartbeatAt = time.Time{}
1372 run.StartedAt = time.Time{}
1373 run.EndedAt = time.Time{}
1374 run.Error = ""
1375 run.Result = nil
1376 if err := m.store.UpdateTaskRun(ctx, run); err != nil {
1377 return nil, err
1378 }
1379 reconciledTask, err := m.recordRecoveredRun(
1380 ctx,
1381 taskRecord.ID,
1382 run,
1383 recovery,
1384 actor,
1385 previousStatus,
1386 previousSessionID,
1387 )
1388 if err != nil {
1389 return nil, err
1390 }
1391 m.dispatchTaskRunLeaseRecovered(
1392 ctx,
1393 run,
1394 reconciledTask,
1395 actor,
1396 previousStatus,
1397 previousSessionID,
1398 recovery,
1399 )
1400 return &run, nil
1401}
1402
1403func (m *Service) recoverRunByMarkRunning(
1404 ctx context.Context,

Callers 1

RecoverRunOnBootMethod · 0.95

Calls 4

recordRecoveredRunMethod · 0.95
UpdateTaskRunMethod · 0.65

Tested by

no test coverage detected