feat: use injector shutdown rather than manually call Close()
This commit is contained in:
parent
9f1ad95f4e
commit
696804452e
@ -105,6 +105,11 @@ func wrap(f func(i *do.Injector) error) func(*cli.Context) error {
|
||||
}()
|
||||
|
||||
injector := prepareServices(c)
|
||||
defer func() {
|
||||
if err := injector.Shutdown(); err != nil {
|
||||
slog.Printf("shutdown injector failed: %v", err)
|
||||
}
|
||||
}()
|
||||
|
||||
logger := do.MustInvoke[log.Service](injector)
|
||||
defer func() { _ = logger.GetRawLogger().Sync() }()
|
||||
|
@ -8,7 +8,6 @@ import (
|
||||
"git.0x7f.app/WOJ/woj-server/internal/misc/config"
|
||||
"git.0x7f.app/WOJ/woj-server/internal/misc/log"
|
||||
"git.0x7f.app/WOJ/woj-server/internal/model"
|
||||
"git.0x7f.app/WOJ/woj-server/internal/repo/db"
|
||||
"git.0x7f.app/WOJ/woj-server/internal/web/router"
|
||||
"git.0x7f.app/WOJ/woj-server/pkg/utils"
|
||||
"git.0x7f.app/WOJ/woj-server/pkg/zapasynq"
|
||||
@ -24,15 +23,8 @@ import (
|
||||
)
|
||||
|
||||
func RunServerMigrate(i *do.Injector) error {
|
||||
slog := do.MustInvoke[log.Service](i).GetLogger("app.server")
|
||||
|
||||
// Migrate and shutdown database
|
||||
err := do.MustInvoke[db.Service](i).Close()
|
||||
if err != nil {
|
||||
slog.Warn("Database Close Failed", zap.Error(err))
|
||||
}
|
||||
|
||||
return err
|
||||
return nil
|
||||
}
|
||||
|
||||
func RunServer(i *do.Injector) error {
|
||||
@ -98,11 +90,5 @@ func RunServer(i *do.Injector) error {
|
||||
// Graceful Shutdown Queue
|
||||
queueSrv.Shutdown()
|
||||
|
||||
// Graceful Shutdown Database
|
||||
err = do.MustInvoke[db.Service](i).Close()
|
||||
if err != nil {
|
||||
slog.Warn("Database Close Failed", zap.Error(err))
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ type Service interface {
|
||||
Get() *gorm.DB
|
||||
Close() error
|
||||
HealthCheck() error
|
||||
Shutdown() error
|
||||
}
|
||||
|
||||
func NewService(i *do.Injector) (Service, error) {
|
||||
@ -60,6 +61,10 @@ func (s *service) HealthCheck() error {
|
||||
return s.err
|
||||
}
|
||||
|
||||
func (s *service) Shutdown() error {
|
||||
return s.Close()
|
||||
}
|
||||
|
||||
func (s *service) setup(conf *model.Config) {
|
||||
s.log.Info("Connecting to database...")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user