diff --git a/docs/01-get-started/03-golang-hello-world.md b/docs/01-get-started/03-golang-hello-world.md index 2d4d2afd4..49058af15 100644 --- a/docs/01-get-started/03-golang-hello-world.md +++ b/docs/01-get-started/03-golang-hello-world.md @@ -30,17 +30,17 @@ go mod init package main import ( - "net/http" - "go.uber.org/cadence/.gen/go/cadence/workflowserviceclient" - "go.uber.org/cadence/compatibility" - "go.uber.org/cadence/worker" - - apiv1 "github.com/uber/cadence-idl/go/proto/api/v1" - "github.com/uber-go/tally" - "go.uber.org/zap" - "go.uber.org/zap/zapcore" - "go.uber.org/yarpc" - "go.uber.org/yarpc/transport/grpc" + "net/http" + "go.uber.org/cadence/.gen/go/cadence/workflowserviceclient" + "go.uber.org/cadence/compatibility" + "go.uber.org/cadence/worker" + + apiv1 "github.com/uber/cadence-idl/go/proto/api/v1" + "github.com/uber-go/tally" + "go.uber.org/zap" + "go.uber.org/zap/zapcore" + "go.uber.org/yarpc" + "go.uber.org/yarpc/transport/grpc" ) var HostPort = "127.0.0.1:7833" @@ -50,70 +50,70 @@ var ClientName = "test-worker" var CadenceService = "cadence-frontend" func main() { - startWorker(buildLogger(), buildCadenceClient()) - err := http.ListenAndServe(":8080", nil) - if err != nil { - panic(err) - } + startWorker(buildLogger(), buildCadenceClient()) + err := http.ListenAndServe(":8080", nil) + if err != nil { + panic(err) + } } func buildLogger() *zap.Logger { - config := zap.NewDevelopmentConfig() - config.Level.SetLevel(zapcore.InfoLevel) + config := zap.NewDevelopmentConfig() + config.Level.SetLevel(zapcore.InfoLevel) - var err error - logger, err := config.Build() - if err != nil { - panic("Failed to setup logger") - } + var err error + logger, err := config.Build() + if err != nil { + panic("Failed to setup logger") + } - return logger + return logger } func buildCadenceClient() workflowserviceclient.Interface { - dispatcher := yarpc.NewDispatcher(yarpc.Config{ + dispatcher := yarpc.NewDispatcher(yarpc.Config{ Name: ClientName, Outbounds: yarpc.Outbounds{ - CadenceService: {Unary: grpc.NewTransport().NewSingleOutbound(HostPort)}, + CadenceService: {Unary: grpc.NewTransport().NewSingleOutbound(HostPort)}, }, - }) - if err := dispatcher.Start(); err != nil { + }) + if err := dispatcher.Start(); err != nil { panic("Failed to start dispatcher") - } + } - clientConfig := dispatcher.ClientConfig(CadenceService) + clientConfig := dispatcher.ClientConfig(CadenceService) - return compatibility.NewThrift2ProtoAdapter( + return compatibility.NewThrift2ProtoAdapter( apiv1.NewDomainAPIYARPCClient(clientConfig), apiv1.NewWorkflowAPIYARPCClient(clientConfig), apiv1.NewWorkerAPIYARPCClient(clientConfig), apiv1.NewVisibilityAPIYARPCClient(clientConfig), - ) + ) } func startWorker(logger *zap.Logger, service workflowserviceclient.Interface) { - // TaskListName identifies set of client workflows, activities, and workers. - // It could be your group or client or application name. - workerOptions := worker.Options{ - Logger: logger, - MetricsScope: tally.NewTestScope(TaskListName, map[string]string{}), - } - - worker, err := worker.NewV2( - service, - Domain, - TaskListName, - workerOptions) - if err != nil { - panic("Failed to initalize worker") - } - - err := worker.Start() - if err != nil { - panic("Failed to start worker") - } - - logger.Info("Started Worker.", zap.String("worker", TaskListName)) + // TaskListName identifies set of client workflows, activities, and workers. + // It could be your group or client or application name. + workerOptions := worker.Options{ + Logger: logger, + MetricsScope: tally.NewTestScope(TaskListName, map[string]string{}), + } + + worker, err := worker.NewV2( + service, + Domain, + TaskListName, + workerOptions) + if err != nil { + panic("Failed to initialize worker") + } + + err = worker.Start() + if err != nil { + panic("Failed to start worker") + } + + logger.Info("Started Worker.", zap.String("worker", TaskListName)) } ``` @@ -174,10 +174,9 @@ func helloWorldActivity(ctx context.Context, name string) (string, error) { Don't forget to register the workflow and activity to the worker. ```go -func init() { - workflow.Register(helloWorldWorkflow) - activity.Register(helloWorldActivity) -} +// add the following lines to the function startWorker before calling worker.Start() +worker.RegisterWorkflow(helloWorldWorkflow) +worker.RegisterActivity(helloWorldActivity) ``` Import the missing modules if they were not automatically added.