mirror of https://github.com/dapr/docs.git
update go code to use vanity client
Signed-off-by: Cassandra Coyle <cassie@diagrid.io>
This commit is contained in:
parent
4372027964
commit
44e2756993
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue