forked from temporalio/samples-go
-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
48 lines (39 loc) · 1.3 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package main
import (
"log"
"go.temporal.io/sdk/client"
"go.temporal.io/sdk/contrib/opentracing"
"go.temporal.io/sdk/interceptor"
"go.temporal.io/sdk/worker"
"go.temporal.io/sdk/workflow"
"github.com/temporalio/samples-go/ctxpropagation"
)
func main() {
// Set tracer which will be returned by opentracing.GlobalTracer().
closer := ctxpropagation.SetJaegerGlobalTracer()
defer func() { _ = closer.Close() }()
// Create interceptor
tracingInterceptor, err := opentracing.NewInterceptor(opentracing.TracerOptions{})
if err != nil {
log.Fatalf("Failed creating interceptor: %v", err)
}
// The client and worker are heavyweight objects that should be created once per process.
c, err := client.Dial(client.Options{
HostPort: client.DefaultHostPort,
ContextPropagators: []workflow.ContextPropagator{ctxpropagation.NewContextPropagator()},
Interceptors: []interceptor.ClientInterceptor{tracingInterceptor},
})
if err != nil {
log.Fatalln("Unable to create client", err)
}
defer c.Close()
w := worker.New(c, "ctx-propagation", worker.Options{
EnableLoggingInReplay: true,
})
w.RegisterWorkflow(ctxpropagation.CtxPropWorkflow)
w.RegisterActivity(ctxpropagation.SampleActivity)
err = w.Run(worker.InterruptCh())
if err != nil {
log.Fatalln("Unable to start worker", err)
}
}