114
taskAttr chasm.TaskAttributes,
115
task *callbackspb.InvocationTask,
117
>
ns, err := h.namespaceRegistry.GetNamespaceByID(namespace.ID(ref.NamespaceID))
118
>
if err != nil {
119
return fmt.Errorf("failed to get namespace by ID: %w", err)
120
}
121
122
>
invokable, err := chasm.ReadComponent(
tasks.go
123
>
ctx,
124
>
ref,
125
>
(*Callback).loadInvocationArgs,
126
>
nil,
127
>
)
128
>
if err != nil {
129
return err
130
}
131
132
>
callCtx, cancel := context.WithTimeout(
tasks.go
133
>
ctx,
134
>
h.config.RequestTimeout(ns.Name().String(), taskAttr.Destination),
135
>
)
136
>
defer cancel()
137
>
138
>
result := invokable.Invoke(callCtx, ns, h, task, taskAttr)
139
>
_, _, saveErr := chasm.UpdateComponent(
140
>
ctx,
141
>
ref,
142
>
(*Callback).saveResult,
143
>
saveResultInput{
144
>
result: result,
145
>
retryPolicy: h.config.RetryPolicy(),
146
>
},
147
>
)
148
>
return invokable.WrapError(result, saveErr)
149
}
150