Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // main.go
- checker := healthchecker.GetInstance()
- var wg sync.WaitGroup
- wg.Add(len(checker.RegisteredChecks))
- for _, check := range checker.RegisteredChecks {
- go func(curCheck healthchecker.Check) {
- defer wg.Done()
- checker.Check(ctx, curCheck)
- }(check)
- }
- wg.Wait()
- // healthchecker.go
- func (ch *Checker) Check(ctx context.Context, check Check) {
- if ok := check.Callback(ctx); !ok {
- ch.addFailure(check.Name, check.FailureMsg)
- }
- }
- func (ch *Checker) addFailure(key, message string) {
- ch.mu.Lock()
- defer ch.mu.Unlock()
- if _, exist := ch.Failures[key]; !exist {
- ch.Failures[key] = message
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement