zdravko/pkg/server/worker.go

36 lines
822 B
Go

package server
import (
"code.tjo.space/mentos1386/zdravko/internal/activities"
"code.tjo.space/mentos1386/zdravko/internal/config"
"code.tjo.space/mentos1386/zdravko/internal/workflows"
"go.temporal.io/sdk/client"
"go.temporal.io/sdk/worker"
)
type Worker struct {
worker worker.Worker
}
func NewWorker(temporalClient client.Client, cfg *config.ServerConfig) *Worker {
w := worker.New(temporalClient, "default", worker.Options{})
workerActivities := activities.NewActivities(&config.WorkerConfig{})
workerWorkflows := workflows.NewWorkflows(workerActivities)
// Register Workflows
w.RegisterWorkflow(workerWorkflows.MonitorWorkflowDefinition)
return &Worker{
worker: w,
}
}
func (w *Worker) Start() error {
return w.worker.Run(worker.InterruptCh())
}
func (w *Worker) Stop() {
w.worker.Stop()
}