Files
watchdog/entity.go

45 lines
984 B
Go
Raw Permalink Normal View History

2025-07-12 22:01:23 +03:00
package watchdog
import (
"context"
"time"
)
type Status uint8
const (
StatusUnknown Status = iota
StatusOK
StatusDown
)
func (s Status) String() string {
switch s {
case StatusOK:
return "OK"
case StatusDown:
return "DOWN"
default:
return "UNKNOWN"
}
}
// CheckFunc is a function that does the actual work.
// This package provides a number of check functions but
// any function matching the signature may be provided.
2025-07-12 22:01:23 +03:00
// It must obey context dealine and cancellation.
type CheckFunc func(context.Context) (Status, error)
// Check represents a check that must be run by Watchdog.
type Check struct {
Name string // indentifier of this check
Interval time.Duration // how often the check must run (if running periodically with Start method)
Check CheckFunc // function to run
}
type CheckResult struct {
Name string // identifier of check
Status Status // status as retuned by CheckFunc
Error error // error returned by CheckFunc
}