feat 添加探针
This commit is contained in:
parent
383f4844cf
commit
27f10ca798
56
pkg/web/probe.go
Normal file
56
pkg/web/probe.go
Normal file
@ -0,0 +1,56 @@
|
||||
package web
|
||||
|
||||
import "github.com/gofiber/fiber/v3"
|
||||
|
||||
// 注册健康探针
|
||||
type Probe struct {
|
||||
// 存活探针
|
||||
livingHook func(ctx fiber.Ctx) error
|
||||
// 就绪探针
|
||||
readyHook func(ctx fiber.Ctx) error
|
||||
// 启动探针
|
||||
startHook func(ctx fiber.Ctx) error
|
||||
}
|
||||
|
||||
func NewProbe() *Probe {
|
||||
return &Probe{}
|
||||
}
|
||||
|
||||
// 设置存活探针
|
||||
func (p *Probe) SetLivingProbe(hook func(ctx fiber.Ctx) error) *Probe {
|
||||
p.livingHook = hook
|
||||
return p
|
||||
}
|
||||
|
||||
// 设置就绪探针
|
||||
func (p *Probe) SetReadyProbe(hook func(ctx fiber.Ctx) error) *Probe {
|
||||
p.readyHook = hook
|
||||
return p
|
||||
}
|
||||
|
||||
// 设置启动探针
|
||||
func (p *Probe) SetStartProbe(hook func(ctx fiber.Ctx) error) *Probe {
|
||||
p.startHook = hook
|
||||
return p
|
||||
}
|
||||
|
||||
// 默认探针
|
||||
func defaultProbe(ctx fiber.Ctx) error {
|
||||
return ctx.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
func (p *Probe) Registry(r fiber.Router) {
|
||||
if p.livingHook == nil {
|
||||
p.SetLivingProbe(defaultProbe)
|
||||
}
|
||||
if p.readyHook == nil {
|
||||
p.SetReadyProbe(defaultProbe)
|
||||
}
|
||||
if p.startHook == nil {
|
||||
p.SetStartProbe(defaultProbe)
|
||||
}
|
||||
|
||||
r.Get("/ready", p.readyHook)
|
||||
r.Get("/living", p.livingHook)
|
||||
r.Get("/start", p.startHook)
|
||||
}
|
7
pkg/web/register.go
Normal file
7
pkg/web/register.go
Normal file
@ -0,0 +1,7 @@
|
||||
package web
|
||||
|
||||
import "github.com/gofiber/fiber/v3"
|
||||
|
||||
type Register interface {
|
||||
Registry(r fiber.Router)
|
||||
}
|
Loading…
Reference in New Issue
Block a user