Files
query-orchestration/cmd/docInitRunner/main.go
T

58 lines
1.2 KiB
Go
Raw Normal View History

package main
import (
"context"
"log/slog"
"os"
2025-03-05 12:05:46 +00:00
docinitrunner "queryorchestration/api/docInitRunner"
documentinit "queryorchestration/internal/document/init"
"queryorchestration/internal/server/runner"
documentsyncc "queryorchestration/internal/serviceconfig/queue/documentsync"
_ "github.com/lib/pq"
)
type DocInitConfig struct {
runner.BaseConfig
documentsyncc.DocSyncConfig
}
func main() {
ctx := context.Background()
cfg := &DocInitConfig{}
cfg.ControllerFunc = func() runner.Controller {
docinit := documentinit.New(cfg)
return docinitrunner.New(cfg.GetValidator(), &docinitrunner.Services{
Document: docinit,
})
}
server, err := runner.New(ctx, cfg)
if err != nil {
slog.Error(err.Error())
os.Exit(1)
}
// optional add shutdown metrics
defer func() {
err = cfg.GetMetrics().RecordLifecycleEvent(1.0, "shutdown", "main")
if err != nil {
slog.Error("Failed to record shutdown metric ", "error", err)
}
}()
// start and block until server is done
server.Listen(ctx)
// optional shutdown
metrics := cfg.GetMetrics()
if err := metrics.Shutdown(ctx); err != nil {
slog.Error("Error shutting down metrics server", "error", err)
}
}