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  ```