@@ -10,8 +10,12 @@ import (
10
10
"github.com/cschleiden/go-workflows/backend"
11
11
"github.com/cschleiden/go-workflows/backend/history"
12
12
"github.com/cschleiden/go-workflows/core"
13
+ "github.com/cschleiden/go-workflows/internal/log"
14
+ "github.com/cschleiden/go-workflows/internal/tracing"
13
15
"github.com/cschleiden/go-workflows/internal/workflowerrors"
14
16
"github.com/redis/go-redis/v9"
17
+ "go.opentelemetry.io/otel/attribute"
18
+ "go.opentelemetry.io/otel/trace"
15
19
)
16
20
17
21
func (rb * redisBackend ) GetWorkflowTask (ctx context.Context ) (* backend.WorkflowTask , error ) {
@@ -245,27 +249,26 @@ func (rb *redisBackend) CompleteWorkflowTask(
245
249
// If there are pending events, queue the instance again
246
250
// No args/keys needed
247
251
248
- // Commit transaction
252
+ // Run script
249
253
_ , err := completeWorkflowTaskCmd .Run (ctx , rb .rdb , keys , args ... ).Result ()
250
254
if err != nil {
251
255
return fmt .Errorf ("completing workflow task: %w" , err )
252
256
}
253
257
254
258
if state == core .WorkflowInstanceStateFinished || state == core .WorkflowInstanceStateContinuedAsNew {
255
259
// Trace workflow completion
256
- // TODO: Return metadata from script
257
- // ctx, err = (&tracing.TracingContextPropagator{}).Extract(ctx, instanceState.Metadata)
258
- // if err != nil {
259
- // rb.Logger().Error("extracting tracing context", log.ErrorKey, err)
260
- // }
261
-
262
- // _, span := rb.Tracer().Start(ctx, "WorkflowComplete",
263
- // trace.WithAttributes(
264
- // attribute.String(log.NamespaceKey+log.InstanceIDKey, instanceState.Instance.InstanceID),
265
- // ))
266
- // span.End()
267
-
268
- // TODO: Move to script
260
+ ctx , err = (& tracing.TracingContextPropagator {}).Extract (ctx , task .Metadata )
261
+ if err != nil {
262
+ rb .Logger ().Error ("extracting tracing context" , log .ErrorKey , err )
263
+ }
264
+
265
+ _ , span := rb .Tracer ().Start (ctx , "WorkflowComplete" ,
266
+ trace .WithAttributes (
267
+ attribute .String (log .NamespaceKey + log .InstanceIDKey , task .WorkflowInstance .InstanceID ),
268
+ ))
269
+ span .End ()
270
+
271
+ // Auto expiration
269
272
if rb .options .AutoExpiration > 0 {
270
273
if err := setWorkflowInstanceExpiration (ctx , rb .rdb , instance , rb .options .AutoExpiration ); err != nil {
271
274
return fmt .Errorf ("setting workflow instance expiration: %w" , err )
0 commit comments