Skip to content

Instantly share code, notes, and snippets.

@percybolmer
Created March 4, 2022 07:27
Show Gist options
  • Save percybolmer/50c652b5dddf969db12d0bf5ff8951c4 to your computer and use it in GitHub Desktop.
Save percybolmer/50c652b5dddf969db12d0bf5ff8951c4 to your computer and use it in GitHub Desktop.
package main
import (
"fmt"
localprom "programmingpercy/cadence-tavern/prometheus"
_ "programmingpercy/cadence-tavern/workflows/greetings"
_ "programmingpercy/cadence-tavern/workflows/orders"
_ "go.uber.org/cadence/.gen/go/cadence"
"go.uber.org/cadence/.gen/go/cadence/workflowserviceclient"
"go.uber.org/cadence/worker"
"go.uber.org/yarpc"
_ "go.uber.org/yarpc/api/transport"
"go.uber.org/yarpc/transport/tchannel"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
..... unchanged until
// newWorkerServiceClient is used to initialize a new Worker service
// It will handle Connecting and configuration of the client
// Returns a Worker, the logger applied or an error
// TODO expand this function to allow more configurations, will be done later in the article.
func newWorkerServiceClient() (worker.Worker, *zap.Logger, error) {
// Create a logger to use for the service
logger, err := newLogger()
if err != nil {
return nil, nil, err
}
reporter, err := localprom.NewPrometheusReporter("127.0.0.1:9098", logger)
if err != nil {
return nil, nil, err
}
metricsScope := localprom.NewServiceScope(reporter)
// build the most basic Options for now
workerOptions := worker.Options{
Logger: logger,
MetricsScope: metricsScope,
}
// Create the connection that the worker should use
connection, err := newCadenceConnection(ClientName)
if err != nil {
return nil, nil, err
}
// Create the worker and return
return worker.New(connection, Domain, TaskList, workerOptions), logger, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment