refactor: Extract services form router

This commit is contained in:
世界
2024-11-10 16:46:59 +08:00
parent a1be455202
commit 9afe75586a
27 changed files with 314 additions and 464 deletions

View File

@@ -1,13 +1,5 @@
package adapter
type LegacyPreStarter interface {
PreStart() error
}
type LegacyPostStarter interface {
PostStart() error
}
func LegacyStart(starter any, stage StartStage) error {
switch stage {
case StartStateInitialize:
@@ -22,7 +14,7 @@ func LegacyStart(starter any, stage StartStage) error {
}); isStarter {
return starter.Start()
}
case StartStatePostStart:
case StartStateStarted:
if postStarter, isPostStarter := starter.(interface {
PostStart() error
}); isPostStarter {
@@ -31,3 +23,27 @@ func LegacyStart(starter any, stage StartStage) error {
}
return nil
}
type lifecycleServiceWrapper struct {
Service
name string
}
func NewLifecycleService(service Service, name string) LifecycleService {
return &lifecycleServiceWrapper{
Service: service,
name: name,
}
}
func (l *lifecycleServiceWrapper) Name() string {
return l.name
}
func (l *lifecycleServiceWrapper) Start(stage StartStage) error {
return LegacyStart(l.Service, stage)
}
func (l *lifecycleServiceWrapper) Close() error {
return l.Service.Close()
}