From bc442fb8bac65fac18256054cff7788c517c71a2 Mon Sep 17 00:00:00 2001 From: miraclesu Date: Tue, 18 Apr 2017 17:41:54 +0800 Subject: [PATCH] =?UTF-8?q?node:=20=E5=A2=9E=E5=8A=A0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/node.go | 9 +++++++-- models/version.go | 12 ++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 models/version.go diff --git a/models/node.go b/models/node.go index 187db57..40263ce 100644 --- a/models/node.go +++ b/models/node.go @@ -6,6 +6,7 @@ import ( "os" "strconv" "syscall" + "time" client "github.com/coreos/etcd/clientv3" mgo "gopkg.in/mgo.v2" @@ -25,6 +26,10 @@ type Node struct { ID string `bson:"_id" json:"id"` // ip PID string `bson:"pid" json:"pid"` // 进程 pid + Version string `bson:"version" json:"version"` + UpTime time.Time `bson:"up" json:"up"` // 启动时间 + DownTime time.Time `bson:"down" json:"down"` // 上次关闭时间 + Alived bool `bson:"alived" json:"alived"` // 是否可用 Connected bool `bson:"-" json:"connected"` // 当 Alived 为 true 时有效,表示心跳是否正常 } @@ -122,7 +127,7 @@ func WatchNode() client.WatchChan { // On 结点实例启动后,在 mongoDB 中记录存活信息 func (n *Node) On() { - n.Alived = true + n.Alived, n.Version, n.UpTime = true, Version, time.Now() if err := mgoDB.Upsert(Coll_Node, bson.M{"_id": n.ID}, n); err != nil { log.Error(err.Error()) } @@ -130,7 +135,7 @@ func (n *Node) On() { // On 结点实例停用后,在 mongoDB 中去掉存活信息 func (n *Node) Down() { - n.Alived = false + n.Alived, n.DownTime = false, time.Now() if err := mgoDB.Upsert(Coll_Node, bson.M{"_id": n.ID}, n); err != nil { log.Error(err.Error()) } diff --git a/models/version.go b/models/version.go new file mode 100644 index 0000000..0e66785 --- /dev/null +++ b/models/version.go @@ -0,0 +1,12 @@ +package models + +import ( + "fmt" + "runtime" +) + +const Binary = "v0.1.0" + +var ( + Version = fmt.Sprintf("%s (build %s)", Binary, runtime.Version()) +)