github.com/sandwich-go/boost@v1.3.29/module/README.md (about) 1 # module 2 3 `module` 管理工具 4 5 - 管理自定义的 `module` 6 - 按注册顺序启动 `module` 7 - 依次调用 `module` 的 `OnInit` 函数 8 - 依次调用 `module` 的 `Run` 函数 9 - 按注册反序关闭 `module` 10 - 依次调用 `module` 的 `OnClose` 函数 11 12 # 例子 13 ```go 14 type infrastructure struct { 15 handler Handler 16 startedCh chan struct{} 17 } 18 19 func newInfrastructure(handler Handler) *infrastructure { 20 return &infrastructure{startedCh: make(chan struct{}), handler: handler} 21 } 22 23 func (s *infrastructure) OnInit() { 24 s.handler.infrastructureInitialize() 25 close(s.startedCh) 26 } 27 28 func (s *infrastructure) OnClose() { 29 s.handler.infrastructureDestroy() 30 } 31 32 func (s *infrastructure) Run(closeChan chan struct{}) { <-closeChan } 33 func (s *infrastructure) Name() string { return "module-infrastructure" } 34 35 func main() { 36 handler := newHandler() 37 module.Register(newInfrastructure(handler)) 38 module.Run() 39 } 40 ```