提交 3dacdbb7 authored 作者: mooncake9527's avatar mooncake9527

update

上级 506d7030
...@@ -26,6 +26,33 @@ import ( ...@@ -26,6 +26,33 @@ import (
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger" "gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
) )
func init() {
eventbus.Eb.Subscribe(eventbus.TopicParseConf, func(ctx context.Context) {
parseInit()
})
eventbus.Eb.Subscribe(eventbus.TopicLoggerInit, func(ctx context.Context) {
if err := initLogger(config.Cfg); err != nil {
panic(err)
}
})
eventbus.Eb.Subscribe(eventbus.TopicDBInit, func(ctx context.Context) {
initDatabase()
})
eventbus.Eb.Subscribe(eventbus.TopicCacheInit, func(ctx context.Context) {
conf := config.Cfg
database.InitCache(conf.App.CacheType)
})
eventbus.Eb.Subscribe(eventbus.TopicMiddlewareInit, func(ctx context.Context) {
conf := config.Cfg
initTrace(conf)
initState(conf)
})
eventbus.Eb.Subscribe(eventbus.TopicRdInit, func(ctx context.Context) {
conf := config.Cfg
initRd(conf)
})
}
func parseInit() { func parseInit() {
if confType, ok := os.LookupEnv("CONF_TYPE"); (ok && sliceUtils.NotContains([]string{"local", "nacos", "consul"}, confType)) || !ok { if confType, ok := os.LookupEnv("CONF_TYPE"); (ok && sliceUtils.NotContains([]string{"local", "nacos", "consul"}, confType)) || !ok {
return return
...@@ -41,10 +68,6 @@ func parseInit() { ...@@ -41,10 +68,6 @@ func parseInit() {
if err := dxsf.Init(); err != nil { if err := dxsf.Init(); err != nil {
logger.Fatal(err.Error()) logger.Fatal(err.Error())
} }
logger.Info("[dxsf] initialized.")
if err := initOthers(); err != nil {
logger.Fatal(err.Error())
}
} }
type Application struct { type Application struct {
...@@ -54,11 +77,28 @@ type Application struct { ...@@ -54,11 +77,28 @@ type Application struct {
func (x *Application) Run() { func (x *Application) Run() {
defer goutils.Recover() defer goutils.Recover()
parseInit()
ctx := context.TODO()
eventbus.Eb.Publish(ctx, eventbus.TopicParseConf)
eventbus.Eb.Publish(ctx, eventbus.TopicParseConfFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicLoggerInit)
eventbus.Eb.Publish(ctx, eventbus.TopicLoggerInitFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicDBInit)
eventbus.Eb.Publish(ctx, eventbus.TopicDBInitFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicCacheInit)
eventbus.Eb.Publish(ctx, eventbus.TopicCacheInitFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicMiddlewareInit)
eventbus.Eb.Publish(ctx, eventbus.TopicMiddlewareInitFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicCronInit)
eventbus.Eb.Publish(ctx, eventbus.TopicCronInitFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicRdInit)
eventbus.Eb.Publish(ctx, eventbus.TopicRdInitFinish)
eventbus.Eb.Publish(ctx, eventbus.TopicGinEngineCreated)
eventbus.Eb.Publish(ctx, eventbus.TopicPrintSwagger)
services := CreateServices(x.h()) services := CreateServices(x.h())
closes := Close(services) closes := Close(services)
x.app = app.New(services, closes) x.app = app.New(services, closes)
eventbus.Eb.Publish(context.TODO(), eventbus.TopicPrintSwagger)
x.app.Run() x.app.Run()
} }
...@@ -103,25 +143,10 @@ func initRd(conf *config.Config) error { ...@@ -103,25 +143,10 @@ func initRd(conf *config.Config) error {
return nil return nil
} }
// init logger,trace,stat,database,cache,rd... func initDatabase() (err error) {
func initOthers() (err error) {
ctx := context.TODO()
conf := config.Cfg
if err := initLogger(conf); err != nil {
return err
}
initTrace(conf)
initState(conf)
if err := database.InitDB(); err != nil { if err := database.InitDB(); err != nil {
return err return err
} }
eventbus.Eb.Publish(ctx, eventbus.TopicDBInitFinish)
database.InitCache(conf.App.CacheType)
eventbus.Eb.Publish(ctx, eventbus.TopicCacheInitFinish)
if err := initRd(conf); err != nil {
return err
}
eventbus.Eb.Publish(ctx, eventbus.TopicCoreInitFinish)
return nil return nil
} }
......
...@@ -2,13 +2,11 @@ package config ...@@ -2,13 +2,11 @@ package config
import ( import (
"bytes" "bytes"
"context"
"os" "os"
"strings" "strings"
"github.com/spf13/cast" "github.com/spf13/cast"
"github.com/spf13/viper" "github.com/spf13/viper"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/eventbus"
"gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger" "gitlab.wanzhuangkj.com/tush/xpkg/pkg/logger"
) )
...@@ -65,7 +63,6 @@ func ParseConf() (err error) { ...@@ -65,7 +63,6 @@ func ParseConf() (err error) {
return err return err
} }
} }
eventbus.Eb.Publish(context.TODO(), eventbus.TopicParseConfFinish)
return nil return nil
} }
......
...@@ -3,13 +3,21 @@ package eventbus ...@@ -3,13 +3,21 @@ package eventbus
var Eb = New() var Eb = New()
const ( const (
TopicParseConfStart string = "event:application:conf:init:start" // 配置文件解析开始 TopicParseConf string = "event:application:conf:init" //
TopicParseConfFinish string = "event:application:conf:init:finish" // 配置文件解析完毕 TopicParseConfFinish string = "event:application:conf:init:finish" //
TopicDBInitFinish string = "event:application:database:init:finish" // 数据库连接初始化完成 TopicLoggerInit string = "event:application:logger:init" //
TopicCacheInitFinish string = "event:application:cache:init:finish" // cache初始化完成 TopicLoggerInitFinish string = "event:application:logger:init:finish" //
TopicCronInitFinish string = "event:application:cron:init:finish" // 定时任务初始化完成 TopicDBInit string = "event:application:database:init" //
TopicCoreInitFinish string = "event:application:core:init:finish" // 核心服务初始化完成 TopicDBInitFinish string = "event:application:database:init:finish" //
TopicGinEngineCreated string = "event:application:gin:engine:created:finish" // gin engine 创建完毕 TopicCacheInit string = "event:application:cache:init" //
TopicPrintSwagger string = "event:swagger:print" // 打印swagger doc info TopicCacheInitFinish string = "event:application:cache:init:finish" //
TopicApplicationClose string = "event:application:close" // 应用关闭 TopicMiddlewareInit string = "event:application:middleware:init" //
TopicMiddlewareInitFinish string = "event:application:middleware:init:finish" //
TopicCronInit string = "event:application:cron:init" //
TopicCronInitFinish string = "event:application:cron:init:finish" //
TopicRdInit string = "event:application:rd:init" //
TopicRdInitFinish string = "event:application:rd:init:finish" //
TopicGinEngineCreated string = "event:application:gin:engine:created" //
TopicPrintSwagger string = "event:swagger:print" //
TopicApplicationClose string = "event:application:close" //
) )
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论