feat: recover poll activations within original round budgets
This commit is contained in:
@@ -44,6 +44,23 @@ func readWorkflowSignalWait(ctx context.Context, tx *sql.Tx, g *workflowGraph, r
|
||||
if err != nil {
|
||||
return w, err
|
||||
}
|
||||
base, err := workflowActivationOrigin(ctx, tx, g, row)
|
||||
if err != nil {
|
||||
return w, err
|
||||
}
|
||||
w.activated = base.started
|
||||
if base.sequence > 1 {
|
||||
original := *row
|
||||
original.view.ActivationID = &base.id
|
||||
original.input = base.input
|
||||
initial, err := readWorkflowSignalWait(ctx, tx, g, &original)
|
||||
if err != nil {
|
||||
return w, err
|
||||
}
|
||||
if initial.correlation != w.correlation {
|
||||
return w, workflowSourceError("SIGNAL_RECOVERY_CORRELATION_INVALID")
|
||||
}
|
||||
}
|
||||
if name == nil || version == nil {
|
||||
return w, workflowSourceError("SIGNAL_WAIT_UNVERIFIED")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user