mirror of
https://github.com/go-micro/go-micro.git
synced 2025-11-29 21:47:44 +02:00
Added Router Status which allows to track router status
This commit is contained in:
@@ -26,6 +26,8 @@ type Router interface {
|
||||
Advertise() (<-chan *Update, error)
|
||||
// Update updates the routing table
|
||||
Update(*Update) error
|
||||
// Status returns router status
|
||||
Status() Status
|
||||
// Stop stops the router
|
||||
Stop() error
|
||||
// String returns debug info
|
||||
@@ -34,7 +36,7 @@ type Router interface {
|
||||
|
||||
// Update is sent by the router to the network
|
||||
type Update struct {
|
||||
// ID is the source router ID
|
||||
// ID is the router ID
|
||||
ID string
|
||||
// Timestamp marks the time when update is sent
|
||||
Timestamp time.Time
|
||||
@@ -42,6 +44,40 @@ type Update struct {
|
||||
Event *Event
|
||||
}
|
||||
|
||||
// StatusCode defines router status
|
||||
type StatusCode int
|
||||
|
||||
// Status is router status
|
||||
type Status struct {
|
||||
// Error is router error
|
||||
Error error
|
||||
// Code defines router status
|
||||
Code StatusCode
|
||||
}
|
||||
|
||||
const (
|
||||
// Running means the rotuer is running
|
||||
Running StatusCode = iota
|
||||
// Error means the router has crashed with error
|
||||
Error
|
||||
// Stopped means the router has stopped
|
||||
Stopped
|
||||
)
|
||||
|
||||
// String returns human readable status code
|
||||
func (sc StatusCode) String() string {
|
||||
switch sc {
|
||||
case Running:
|
||||
return "RUNNING"
|
||||
case Error:
|
||||
return "ERROR"
|
||||
case Stopped:
|
||||
return "STOPPED"
|
||||
default:
|
||||
return "UNKNOWN"
|
||||
}
|
||||
}
|
||||
|
||||
// Option used by the router
|
||||
type Option func(*Options)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user