优化流式传输&fix bugs
This commit is contained in:
@@ -2,14 +2,11 @@
|
||||
package container
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"gemini-balancer/internal/app"
|
||||
"gemini-balancer/internal/channel"
|
||||
"gemini-balancer/internal/config"
|
||||
"gemini-balancer/internal/crypto"
|
||||
"gemini-balancer/internal/db"
|
||||
"gemini-balancer/internal/db/dialect"
|
||||
"gemini-balancer/internal/db/migrations"
|
||||
"gemini-balancer/internal/domain/proxy"
|
||||
"gemini-balancer/internal/domain/upstream"
|
||||
"gemini-balancer/internal/handlers"
|
||||
@@ -21,13 +18,10 @@ import (
|
||||
"gemini-balancer/internal/service"
|
||||
"gemini-balancer/internal/settings"
|
||||
"gemini-balancer/internal/store"
|
||||
"gemini-balancer/internal/syncer"
|
||||
"gemini-balancer/internal/task"
|
||||
"gemini-balancer/internal/webhandlers"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"go.uber.org/dig"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func BuildContainer() (*dig.Container, error) {
|
||||
@@ -35,20 +29,9 @@ func BuildContainer() (*dig.Container, error) {
|
||||
|
||||
// =========== 阶段一: 基础设施层 (Infrastructure) ===========
|
||||
container.Provide(config.LoadConfig)
|
||||
|
||||
container.Provide(func(cfg *config.Config, logger *logrus.Logger) (*gorm.DB, dialect.DialectAdapter, error) {
|
||||
gormDB, adapter, err := db.NewDB(cfg, logger)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
// 迁移运行逻辑
|
||||
if err := migrations.RunVersionedMigrations(gormDB, cfg, logger); err != nil {
|
||||
return nil, nil, fmt.Errorf("failed to run versioned migrations: %w", err)
|
||||
}
|
||||
return gormDB, adapter, nil
|
||||
})
|
||||
container.Provide(logging.NewLoggerWithWebSocket)
|
||||
container.Provide(db.NewDBWithMigrations)
|
||||
container.Provide(store.NewStore)
|
||||
container.Provide(logging.NewLogger)
|
||||
container.Provide(crypto.NewService)
|
||||
container.Provide(repository.NewAuthTokenRepository)
|
||||
container.Provide(repository.NewGroupRepository)
|
||||
@@ -85,10 +68,7 @@ func BuildContainer() (*dig.Container, error) {
|
||||
// --- Syncer & Loader for GroupManager ---
|
||||
container.Provide(service.NewGroupManagerLoader)
|
||||
// 为GroupManager配置Syncer
|
||||
container.Provide(func(loader syncer.LoaderFunc[service.GroupManagerCacheData], store store.Store, logger *logrus.Logger) (*syncer.CacheSyncer[service.GroupManagerCacheData], error) {
|
||||
const groupUpdateChannel = "groups:cache_invalidation"
|
||||
return syncer.NewCacheSyncer(loader, store, groupUpdateChannel, logger)
|
||||
})
|
||||
container.Provide(service.NewGroupManagerSyncer)
|
||||
|
||||
// =========== 阶段三: 适配器与处理器层 (Handlers & Adapters) ===========
|
||||
|
||||
|
||||
Reference in New Issue
Block a user