Beacon/server/client/main.go
2025-06-20 14:33:34 +08:00

50 lines
1.1 KiB
Go

package main
import (
"beacon/server/workflows"
"context"
"fmt"
"github.com/google/uuid"
"go.temporal.io/sdk/client"
"log"
"os"
)
func main() {
if len(os.Args) < 2 {
log.Fatalln("Usage: go run main.go <data>")
}
inputData := os.Args[1]
// Create a Temporal client using the new Dial method.
c, err := client.Dial(client.Options{HostPort: "temporal.newai.day:17233"})
if err != nil {
log.Fatalln("Unable to create Temporal client", err)
}
defer c.Close()
// Generate a unique Workflow ID.
workflowID := "data-processing-workflow-" + uuid.New().String()
// Set up Workflow start options.
workflowOptions := client.StartWorkflowOptions{
ID: workflowID,
TaskQueue: "data-processing-task-queue",
}
// Start the Workflow.
we, err := c.ExecuteWorkflow(context.Background(), workflowOptions, workflows.TestRunWorkflow, inputData)
if err != nil {
log.Fatalln("Unable to execute Workflow", err)
}
// Wait for the Workflow to complete and get the result.
var result string
err = we.Get(context.Background(), &result)
if err != nil {
log.Fatalln("Unable to get Workflow result", err)
}
fmt.Println("Processed Data:", result)
}