提交 13dd38a8 编写于 作者: P peterq

fix demo: docker 容器启动失败导致实例一直处于启动中状态, 无法继续提供服务

上级 652d7ec1
......@@ -15,6 +15,7 @@ import (
"strconv"
"strings"
"sync"
"time"
)
const dockerImage = "pan-light-slave"
......@@ -147,6 +148,15 @@ func (h *Holder) startIns() {
defer dockerP.Process.Kill()
h.pid = dockerP.Process.Pid
// 查询ip
go func() { // 最多等待35秒
order := h.order
<-time.After(35 * time.Second)
if order != h.order {
return
}
log.Println("docker run container failed")
h.slaveOkNotifier.broadcast()
}()
h.slaveOkNotifier.wait()
bin, err := exec.Command("docker", "inspect", "--format",
"{{ .NetworkSettings.IPAddress }}", h.containerName).Output()
......
......@@ -89,6 +89,7 @@ var hostEventMap = map[string]realtime.EventHandler{
slave := host.slaves[slaveName]
unexpected := slave.state == slaveStateRunning
slave.state = slaveStateWait
room := server.RoomByName("room.slave.all.user." + slaveName)
room.Broadcast("slave.exit", gson{
"unexpected": unexpected,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册