update go code to use vanity client

Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
This commit is contained in:
Cassandra Coyle 2025-09-11 15:42:12 -05:00
parent 4372027964
commit 44e2756993
No known key found for this signature in database
1 changed files with 26 additions and 32 deletions

View File

@ -240,64 +240,58 @@ func BusinessWorkflow(ctx *workflow.WorkflowContext) (any, error) {
### Register workflows and activities ### Register workflows and activities
Before your application can execute workflows, you must register both the workflow orchestrator and its activities with a workflow worker. This is a crucial step that ensures Dapr knows which functions to call when executing your workflow. Before your application can execute workflows, you must register both the workflow orchestrator and its activities with a workflow registry. This is a crucial step that ensures Dapr knows which functions to call when executing your workflow.
```go ```go
func main() { func main() {
// Create a workflow worker // Create a workflow registry
w, err := workflow.NewWorker() r := workflow.NewRegistry()
if err != nil {
log.Fatal(err)
}
fmt.Println("Worker initialized")
// Register the workflow orchestrator // Register the workflow orchestrator
if err := w.RegisterWorkflow(BusinessWorkflow); err != nil { if err := r.AddWorkflow(BusinessWorkflow); err != nil {
log.Fatal(err) log.Fatal(err)
} }
fmt.Println("BusinessWorkflow registered") fmt.Println("BusinessWorkflow registered")
// Register the workflow activities // Register the workflow activities
if err := w.RegisterActivity(BusinessActivity); err != nil { if err := r.AddActivity(BusinessActivity); err != nil {
log.Fatal(err) log.Fatal(err)
} }
fmt.Println("BusinessActivity registered") fmt.Println("BusinessActivity registered")
// Start workflow worker // Create workflow client and start worker
if err := w.Start(); err != nil { wclient, err := client.NewWorkflowClient()
if err != nil {
log.Fatal(err) log.Fatal(err)
} }
fmt.Println("Workflow worker started") fmt.Println("Worker initialized")
// Create workflow client for managing workflows ctx, cancel := context.WithCancel(context.Background())
wfClient, err := workflow.NewClient() if err = wclient.StartWorker(ctx, r); err != nil {
if err != nil { log.Fatal(err)
log.Fatalf("failed to initialize client: %v", err)
} }
defer wfClient.Close() fmt.Println("runner started")
// Your application logic continues here... // Your application logic continues here...
// Example: Start a workflow // Example: Start a workflow
ctx := context.Background() instanceID, err := wclient.ScheduleWorkflow(ctx, "BusinessWorkflow", workflow.WithInput(1))
instanceID, err := wfClient.ScheduleNewWorkflow(ctx, "BusinessWorkflow", workflow.WithInput(1))
if err != nil { if err != nil {
log.Fatalf("failed to start workflow: %v", err) log.Fatalf("failed to start workflow: %v", err)
} }
fmt.Printf("workflow started with id: %v\n", instanceID) fmt.Printf("workflow started with id: %v\n", instanceID)
// Stop workflow worker when done // Stop workflow worker when done
if err := w.Shutdown(); err != nil { cancel()
log.Fatalf("failed to shutdown worker: %v", err) fmt.Println("workflow worker successfully shutdown")
}
} }
``` ```
**Key points about registration:** **Key points about registration:**
- Use `workflow.NewWorker()` to create a workflow worker - Use `workflow.NewRegistry()` to create a workflow registry
- Use `w.RegisterWorkflow()` to register workflow functions - Use `r.AddWorkflow()` to register workflow functions
- Use `w.RegisterActivity()` to register activity functions - Use `r.AddActivity()` to register activity functions
- Call `w.Start()` to begin processing workflows - Use `client.NewWorkflowClient()` to create a workflow client
- Use `workflow.NewClient()` to create a client for managing workflows - Call `wclient.StartWorker()` to begin processing workflows
[See the Go SDK workflow activity example in context.](https://github.com/dapr/go-sdk/tree/main/examples/workflow/README.md) [See the Go SDK workflow activity example in context.](https://github.com/dapr/go-sdk/tree/main/examples/workflow/README.md)
@ -1095,7 +1089,7 @@ func main() {
fmt.Printf("stage: %d\n", stage) fmt.Printf("stage: %d\n", stage)
// Terminate workflow test // Terminate workflow test
id, err := wclient.ScheduleWorkflow(ctx, "TestWorkflow", workflow.WithInstanceID("a7a4168d-3a1c-41da-8a4f-e7f6d9c718d9"), workflow.WithInput(1)) id, err := wclient.ScheduleWorkflow(ctx, "BusinessWorkflow", workflow.WithInstanceID("a7a4168d-3a1c-41da-8a4f-e7f6d9c718d9"), workflow.WithInput(1))
if err != nil { if err != nil {
log.Fatalf("failed to start workflow: %v", err) log.Fatalf("failed to start workflow: %v", err)
} }
@ -1130,16 +1124,16 @@ func BusinessWorkflow(ctx *workflow.WorkflowContext) (any, error) {
return nil, err return nil, err
} }
var output string var output string
if err := ctx.CallActivity(BusinessActivity, workflow.WithActivityInput(input)).Await(&output); err != nil { if err := ctx.CallActivity(BusinessActivity, task.WithActivityInput(input)).Await(&output); err != nil {
return nil, err return nil, err
} }
err := ctx.WaitForExternalEvent("businessEvent", time.Second*60).Await(&output) err := ctx.WaitForSingleEvent("businessEvent", time.Second*60).Await(&output)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if err := ctx.CallActivity(BusinessActivity, workflow.WithActivityInput(input)).Await(&output); err != nil { if err := ctx.CallActivity(BusinessActivity, task.WithActivityInput(input)).Await(&output); err != nil {
return nil, err return nil, err
} }
@ -1155,7 +1149,7 @@ func BusinessWorkflow(ctx *workflow.WorkflowContext) (any, error) {
return output, nil return output, nil
} }
func BusinessActivity(ctx workflow.ActivityContext) (any, error) { func BusinessActivity(ctx task.ActivityContext) (any, error) {
var input int var input int
if err := ctx.GetInput(&input); err != nil { if err := ctx.GetInput(&input); err != nil {
return "", err return "", err