23
}
24
25
>
func (d ScheduledEventDefinition) Apply(ctx chasm.MutableContext, wf *Workflow, event *historypb.HistoryEvent) error {
nexus_events.go
26
>
attrs := event.GetNexusOperationScheduledEventAttributes()
27
>
28
>
token, err := wf.GenerateEventLoadToken(event)
29
>
if err != nil {
30
return serviceerror.NewInternalf("failed to generate event load token: %v", err)
31
}
32
33
>
parentData, err := anypb.New(&workflowpb.NexusOperationParentData{
nexus_events.go
34
>
ScheduledEventId: event.GetEventId(),
35
>
ScheduledEventToken: token,
36
>
})
37
>
if err != nil {
38
return serviceerror.NewInternalf("failed to marshal parent data: %v", err)
39
}
40
41
>
op := nexusoperation.NewOperation(&nexusoperationpb.OperationState{
nexus_events.go
42
>
EndpointId: attrs.GetEndpointId(),
43
>
Endpoint: attrs.GetEndpoint(),
44
>
Service: attrs.GetService(),
45
>
Operation: attrs.GetOperation(),
46
>
ScheduledTime: event.GetEventTime(),
47
>
ScheduleToStartTimeout: attrs.GetScheduleToStartTimeout(),
48
>
StartToCloseTimeout: attrs.GetStartToCloseTimeout(),
49
>
ScheduleToCloseTimeout: attrs.GetScheduleToCloseTimeout(),
50
>
RequestId: attrs.GetRequestId(),
51
>
ParentData: parentData,
52
>
Attempt: 0,
53
>
})
54
>
55
>
if err := nexusoperation.TransitionScheduled.Apply(op, ctx, nexusoperation.EventScheduled{}); err != nil {
56
return err
57
}
58
60
>
61
>
return nil
62
}
63