fix heartbeat

This commit is contained in:
Victor Vieux 2014-11-20 23:56:31 +00:00
parent dacb3e2ef1
commit 80cc51c9be
4 changed files with 18 additions and 8 deletions

View File

@ -92,9 +92,13 @@ func (c *Cluster) Nodes() map[string]*Node {
return c.nodes
}
func (c *Cluster) Node(ID string) *Node {
node, _ := c.nodes[ID]
return node
func (c *Cluster) Node(addr string) *Node {
for _, node := range c.nodes {
if node.Addr == addr {
return node
}
}
return nil
}
func (c *Cluster) Events(h EventHandler) error {

View File

@ -18,9 +18,9 @@ func join(c *cli.Context) {
log.Fatal(err)
}
// heartbeat every 25 seconds
hb := time.Duration(c.Int("heartbeat"))
for {
time.Sleep(25 * time.Second)
time.Sleep(hb * time.Second)
if err := discovery.RegisterSlave(c.String("addr"), c.String("token")); err != nil {
log.Error(err)
}

View File

@ -45,6 +45,11 @@ func main() {
Usage: "ip to advertise",
EnvVar: "SWARM_ADDR",
}
flHeartBeat := cli.IntFlag{
Name: "heartbeat, hb",
Value: 25,
Usage: "time in second between each heartbeat",
}
app.Commands = []cli.Command{
{
@ -78,14 +83,14 @@ func main() {
Name: "manage",
ShortName: "m",
Usage: "manage a docker cluster",
Flags: []cli.Flag{flToken, flAddr},
Flags: []cli.Flag{flToken, flAddr, flHeartBeat},
Action: manage,
},
{
Name: "join",
ShortName: "j",
Usage: "join a docker cluster",
Flags: []cli.Flag{flToken, flAddr},
Flags: []cli.Flag{flToken, flAddr, flHeartBeat},
Action: join,
},
}

View File

@ -55,9 +55,10 @@ func manage(c *cli.Context) {
if err := refresh(cluster, nodes); err != nil {
log.Fatal(err)
}
hb := time.Duration(c.Int("heartbeat"))
go func() {
for {
time.Sleep(25 * time.Second)
time.Sleep(hb * time.Second)
nodes, err = discovery.FetchSlaves(c.String("token"))
if err == nil {
refresh(cluster, nodes)