优化结构

This commit is contained in:
Yvan
2026-08-24 17:03:46 +08:00
parent acaee94858
commit 7643152c1e
15 changed files with 244 additions and 203 deletions
+26 -1
View File
@@ -10,6 +10,11 @@ import (
"kra/internal/app"
"kra/internal/config"
"kra/internal/data"
"kra/internal/global"
mqintegration "kra/internal/integration/mq"
"kra/internal/integration/storage"
websocketintegration "kra/internal/integration/websocket"
"kra/internal/server/router"
"kra/internal/service"
"kra/internal/service/dto"
@@ -51,7 +56,27 @@ func runtimeContributions(systemRoutes *router.Routes, systemTasks *worker.TaskM
}
}
func newApp(logger *slog.Logger, hs *kratoshttp.Server, scheduler *worker.TaskScheduler, audit *service.AuditRecorder, loggerControl *logging.ReloadableLogger, _ mq.Client) *kratos.App {
func installGlobalResources(logger *slog.Logger, dataStore *data.Data, fileStorage *storage.Reloadable, broker *mqintegration.Reloadable, websocket *websocketintegration.Server, scheduler *worker.TaskScheduler) *global.ResourceRegistry {
install := func() {
global.Install(global.Resources{
Logger: logger,
DB: dataStore.DB(),
NamedDBs: dataStore.NamedDatabases(),
Redis: dataStore.RedisClient(),
NamedRedis: dataStore.NamedRedisClients(),
Mongo: dataStore.MongoClient(),
Storage: fileStorage,
MQ: broker,
WebSocket: websocket,
Scheduler: scheduler,
})
}
dataStore.SetResourceHook(install)
install()
return global.DefaultRegistry()
}
func newApp(logger *slog.Logger, hs *kratoshttp.Server, scheduler *worker.TaskScheduler, audit *service.AuditRecorder, loggerControl *logging.ReloadableLogger, _ mq.Client, _ *global.ResourceRegistry) *kratos.App {
if audit != nil && loggerControl != nil {
loggerControl.SetErrorSink(logging.ErrorSinkFunc(func(ctx context.Context, entry logging.ErrorEntry) error {
return audit.CreateErrorRequest(ctx, &dto.ErrorRecordRequest{Form: entry.Form, Info: entry.Info, Level: entry.Level, RequestID: entry.RequestID, TraceID: entry.TraceID})
+1
View File
@@ -50,6 +50,7 @@ func wireApp(*config.Server, *config.Store, *slog.Logger, *logging.ReloadableLog
wire.Bind(new(taskbiz.TaskMethodRegistry), new(*platformtask.Registry)),
biz.ProviderSet,
service.ProviderSet,
installGlobalResources,
newApp,
))
}
+2 -1
View File
@@ -184,7 +184,8 @@ func wireApp(configServer *config.Server, store *config.Store, logger *slog.Logg
cleanup()
return nil, nil, err
}
kratosApp := newApp(logger, httpServer, taskScheduler, v3, reloadableLogger, mqReloadable)
resourceRegistry := installGlobalResources(logger, dataData, reloadable, mqReloadable, websocketServer, taskScheduler)
kratosApp := newApp(logger, httpServer, taskScheduler, v3, reloadableLogger, mqReloadable, resourceRegistry)
return kratosApp, func() {
cleanup3()
cleanup2()