You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.2 KiB
Go

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()
}
}