2025-05-28 16:19:21 +08:00

49 lines
1.3 KiB
Go

package main
import (
"log"
"net/http"
"github.com/emsoft/HospitalPay-Go/internal/config"
"github.com/emsoft/HospitalPay-Go/internal/pkg/database"
"github.com/emsoft/HospitalPay-Go/internal/pkg/logger"
"github.com/emsoft/HospitalPay-Go/internal/server"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
func main() {
// 初始化配置
if err := config.Init(); err != nil {
log.Fatalf("Failed to initialize config: %v", err)
}
// 初始化日志
if err := logger.Init(); err != nil {
log.Fatalf("Failed to initialize logger: %v", err)
}
// 初始化数据库
if err := database.Init(); err != nil {
logger.Fatalf("Failed to initialize database: %v", err)
}
defer database.Close()
// 启动监控服务器
if config.GlobalConfig.Monitoring.Enabled {
go func() {
http.Handle("/metrics", promhttp.Handler())
addr := ":" + config.GlobalConfig.Monitoring.PrometheusPort
logger.Infof("Starting monitoring server on %s", addr)
if err := http.ListenAndServe(addr, nil); err != nil {
logger.Fatalf("Failed to start monitoring server: %v", err)
}
}()
}
// 创建并启动 Socket 服务器
socketServer := server.NewSocketServer()
if err := socketServer.Start(); err != nil {
logger.Fatalf("Failed to start socket server: %v", err)
}
}