package main import ( "fmt" appConfig "github.com/exhibition-main/internal/config" "github.com/exhibition-main/pkg/router" "github.com/exhibition-main/pkg/service" "github.com/exhibition-main/pkg/tracing" "github.com/exhibition-main/pkg/utils" "github.com/go-redis/redis" "github.com/robfig/cron/v3" "github.com/streadway/amqp" "go.uber.org/zap" ) type App struct { lg *zap.Logger RedisClient *redis.Client JaegerTracer *tracing.JaegerProvider RabbitMqLink *amqp.Connection } func NewApp(lg *zap.Logger, RedisClient *redis.Client, JaegerTracer *tracing.JaegerProvider) *App { return &App{ lg: lg, RedisClient: RedisClient, JaegerTracer: JaegerTracer, } } func main() { _, err := InitApp() if err != nil { panic(err) } modules() r := router.NewRouter() if appConfig.Data.System.IsHttps { _ = r.RunTLS(fmt.Sprintf(":%d", appConfig.Data.System.Port), appConfig.Data.System.CertPath, appConfig.Data.System.KeyPath) } else { _ = r.Run(fmt.Sprintf(":%d", appConfig.Data.System.Port)) } select {} } func modules() { if err := utils.InitTrans("zh"); err != nil { panic(err) } if appConfig.Data.System.Cron { c := cron.New() service.Task(c) c.Start() } }