57 lines
1.2 KiB
Go
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()
|
|
}
|
|
}
|