46 lines
967 B
Go
46 lines
967 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
"speedtest/config"
|
|
"speedtest/internal/db"
|
|
"speedtest/internal/store"
|
|
"speedtest/internal/web"
|
|
)
|
|
|
|
func main() {
|
|
// 1. Load configuration
|
|
cfg, err := config.LoadConfig()
|
|
if err != nil {
|
|
log.Fatalf("加载配置失败: %v", err)
|
|
}
|
|
fmt.Println("配置加载成功")
|
|
|
|
// 2. Initialize database
|
|
database, err := db.InitDB(cfg.Database)
|
|
if err != nil {
|
|
log.Fatalf("数据库初始化失败: %v", err)
|
|
}
|
|
fmt.Println("数据库初始化成功")
|
|
|
|
// 3. Create Store layer
|
|
stores := store.NewStores(database)
|
|
|
|
// 4. Start Web server
|
|
webServer, err := web.NewWebServer(*cfg, stores)
|
|
if err != nil {
|
|
log.Fatalf("Web 服务初始化失败: %v", err)
|
|
}
|
|
fmt.Printf("Web 服务启动在 %s\n", cfg.Web.Addr)
|
|
go func() {
|
|
if err := webServer.Start(); err != nil {
|
|
log.Fatalf("Web 服务启动失败: %v", err)
|
|
}
|
|
}()
|
|
|
|
fmt.Println("SpeedTest 网速测试服务启动完成")
|
|
select {} // Block main goroutine
|
|
}
|