25 lines
530 B
Go
25 lines
530 B
Go
package healthchecks
|
|
|
|
import "time"
|
|
|
|
// Auto is intended to start as separate goroutine (go c.Auto(5*time.Second))
|
|
// it will automatically send Success (ping) requests, leaving the client itself fully usable
|
|
// to stop the Auto(), call Shutdown() and destroy the client
|
|
func (c *Client) Auto(every time.Duration) {
|
|
ticker := time.NewTicker(every)
|
|
defer ticker.Stop()
|
|
for {
|
|
select {
|
|
case <-ticker.C:
|
|
c.Success()
|
|
case <-c.done:
|
|
return
|
|
}
|
|
}
|
|
}
|
|
|
|
// Shutdown the client
|
|
func (c *Client) Shutdown() {
|
|
c.done <- true
|
|
}
|