main updated
This commit is contained in:
parent
b0c79808c1
commit
20ee14599e
@ -7,6 +7,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus/promhttp"
|
"github.com/prometheus/client_golang/prometheus/promhttp"
|
||||||
"github.com/tuusuario/go-sync-service/internal/config"
|
"github.com/tuusuario/go-sync-service/internal/config"
|
||||||
@ -16,25 +17,28 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// Configurar zona horaria por defecto del proceso
|
||||||
|
initTimezone()
|
||||||
|
|
||||||
// Cargar configuración
|
// Cargar configuración
|
||||||
conf, err := config.LoadConfig()
|
conf, err := config.LoadConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("❌ Error cargando configuración:", err)
|
fmt.Println("Error cargando configuración:", err)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inicializar logger con configuración
|
// Inicializar logger con configuración
|
||||||
config.InitLogger(conf)
|
config.InitLogger(conf)
|
||||||
config.Log.Info("🚀 Iniciando servicio: go-sync-service")
|
config.Log.Info("Iniciando servicio: go-sync-service")
|
||||||
|
|
||||||
emailService := email.NewSMTPEmailService(conf)
|
emailService := email.NewSMTPEmailService(conf)
|
||||||
|
|
||||||
// Conexión a Redis
|
// Conexión a Redis
|
||||||
redisClient := config.GetRedisClient(conf)
|
redisClient := config.GetRedisClient(conf)
|
||||||
if err := redisClient.Ping(context.Background()).Err(); err != nil {
|
if err := redisClient.Ping(context.Background()).Err(); err != nil {
|
||||||
config.Log.Fatalf("❌ Redis no disponible: %v", err)
|
config.Log.Fatalf("Redis no disponible: %v", err)
|
||||||
}
|
}
|
||||||
config.Log.Info("✅ Redis conectado")
|
config.Log.Info("Redis conectado")
|
||||||
|
|
||||||
// Crear proveedor de configuración desde Redis
|
// Crear proveedor de configuración desde Redis
|
||||||
redisManager := config.NewRedisManager(redisClient)
|
redisManager := config.NewRedisManager(redisClient)
|
||||||
@ -43,14 +47,14 @@ func main() {
|
|||||||
// Conexión a Base de Datos
|
// Conexión a Base de Datos
|
||||||
database := config.GetDatabaseConnection(conf)
|
database := config.GetDatabaseConnection(conf)
|
||||||
if database == nil {
|
if database == nil {
|
||||||
config.Log.Fatal("❌ No se pudo establecer la conexión con la base de datos.")
|
config.Log.Fatal("No se pudo establecer la conexión con la base de datos.")
|
||||||
}
|
}
|
||||||
config.Log.Info("✅ Conexión a base de datos establecida")
|
config.Log.Info("Conexión a base de datos establecida")
|
||||||
|
|
||||||
scheduler.Start(context.Background(), redisClient, redisConfigProvider, database, *emailService)
|
scheduler.Start(context.Background(), redisClient, redisConfigProvider, database, *emailService)
|
||||||
config.Log.Info("✅ Scheduler en ejecución y escuchando recargas")
|
config.Log.Info("Scheduler en ejecución y escuchando recargas")
|
||||||
|
|
||||||
//metrics Grafana
|
// Metrics Grafana/Prometheus
|
||||||
metrics.Register()
|
metrics.Register()
|
||||||
startMetricsServer()
|
startMetricsServer()
|
||||||
|
|
||||||
@ -59,13 +63,24 @@ func main() {
|
|||||||
signal.Notify(stop, os.Interrupt, syscall.SIGTERM)
|
signal.Notify(stop, os.Interrupt, syscall.SIGTERM)
|
||||||
<-stop
|
<-stop
|
||||||
|
|
||||||
config.Log.Info("🛑 Señal de apagado recibida, cerrando servicio...")
|
config.Log.Info("Señal de apagado recibida, cerrando servicio...")
|
||||||
|
}
|
||||||
|
|
||||||
|
func initTimezone() {
|
||||||
|
loc, err := time.LoadLocation("America/La_Paz")
|
||||||
|
if err != nil {
|
||||||
|
// Si falla la carga, mantenemos la zona por defecto del entorno
|
||||||
|
// y solo registramos el problema en stdout para no depender del logger aún.
|
||||||
|
fmt.Println("No se pudo cargar la zona horaria America/La_Paz:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
time.Local = loc
|
||||||
}
|
}
|
||||||
|
|
||||||
func startMetricsServer() {
|
func startMetricsServer() {
|
||||||
go func() {
|
go func() {
|
||||||
http.Handle("/metrics", promhttp.Handler())
|
http.Handle("/metrics", promhttp.Handler())
|
||||||
config.Log.Info("📊 Servidor de métricas en :9100/metrics")
|
config.Log.Info("Servidor de métricas en :9100/metrics")
|
||||||
http.ListenAndServe(":9100", nil)
|
_ = http.ListenAndServe(":9100", nil)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user