Files
watchdog/entity.go
Dmitry Fedotov 3aadddbcac feat: stable version
Co-authored-by: Dmitry Fedotov <dmitry@uint32.ru>
Co-committed-by: Dmitry Fedotov <dmitry@uint32.ru>
2025-07-25 18:42:16 +03:00

45 lines
984 B
Go

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.
// 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
}