增加重连
This commit is contained in:
parent
2a93e1cc38
commit
322a051f32
|
@ -18,6 +18,7 @@ var (
|
||||||
TcpFactory = TcpHelper{Full: &full}
|
TcpFactory = TcpHelper{Full: &full}
|
||||||
lockSingle sync.Once
|
lockSingle sync.Once
|
||||||
OrderMap = sync.Map{}
|
OrderMap = sync.Map{}
|
||||||
|
expire = 10 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
type TcpHelper struct {
|
type TcpHelper struct {
|
||||||
|
@ -28,7 +29,7 @@ type TcpHelper struct {
|
||||||
|
|
||||||
func (t *TcpHelper) Init(port string) *TcpHelper {
|
func (t *TcpHelper) Init(port string) *TcpHelper {
|
||||||
lockSingle.Do(func() {
|
lockSingle.Do(func() {
|
||||||
var conn, err = net.DialTimeout("tcp", config.GetConf().Url+":"+port, 10*time.Second)
|
var conn, err = net.DialTimeout("tcp", config.GetConf().Url+":"+port, expire)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.client = conn
|
t.client = conn
|
||||||
atomic.StoreInt32(t.Full, 0)
|
atomic.StoreInt32(t.Full, 0)
|
||||||
|
@ -42,7 +43,7 @@ func (t *TcpHelper) Init(port string) *TcpHelper {
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
func (t *TcpHelper) reconnect(port string) {
|
func (t *TcpHelper) reconnect(port string) {
|
||||||
var conn, err = net.DialTimeout("tcp", config.GetConf().Url+":"+port, 5*time.Second)
|
var conn, err = net.DialTimeout("tcp", config.GetConf().Url+":"+port, expire)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
utils.Log(nil, "连接下游成功")
|
utils.Log(nil, "连接下游成功")
|
||||||
atomic.StoreInt32(t.Full, 0)
|
atomic.StoreInt32(t.Full, 0)
|
||||||
|
@ -64,7 +65,7 @@ func (t *TcpHelper) SendMsg(msg []byte) error {
|
||||||
}
|
}
|
||||||
var start = time.Now().Unix()
|
var start = time.Now().Unix()
|
||||||
var clinet = t.Init(config.GetConf().OrderPort).client
|
var clinet = t.Init(config.GetConf().OrderPort).client
|
||||||
clinet.SetReadDeadline(time.Now().Add(time.Second * 5))
|
clinet.SetReadDeadline(time.Now().Add(time.Second * 10))
|
||||||
_, err := clinet.Write(msg)
|
_, err := clinet.Write(msg)
|
||||||
var end = time.Now().Unix()
|
var end = time.Now().Unix()
|
||||||
fmt.Println(end-start, "秒")
|
fmt.Println(end-start, "秒")
|
||||||
|
@ -111,13 +112,13 @@ func (t *TcpHelper) Close(conn net.Conn) {
|
||||||
}
|
}
|
||||||
func (t *TcpHelper) watch(conn net.Conn) {
|
func (t *TcpHelper) watch(conn net.Conn) {
|
||||||
go func() {
|
go func() {
|
||||||
defer func() {
|
//defer func() {
|
||||||
if err := recover(); err != nil {
|
// if err := recover(); err != nil {
|
||||||
fmt.Println("连接断开", err)
|
// fmt.Println("连接断开", err)
|
||||||
}
|
// }
|
||||||
}()
|
//}()
|
||||||
for {
|
for {
|
||||||
conn.SetWriteDeadline(time.Now().Add(time.Second * 5))
|
conn.SetWriteDeadline(time.Now().Add(expire))
|
||||||
_, err := conn.Write([]byte("1\n"))
|
_, err := conn.Write([]byte("1\n"))
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -129,7 +130,7 @@ func (t *TcpHelper) watch(conn net.Conn) {
|
||||||
} else {
|
} else {
|
||||||
var buffer = make([]byte, 1)
|
var buffer = make([]byte, 1)
|
||||||
// 持续读取数据
|
// 持续读取数据
|
||||||
t.client.SetReadDeadline(time.Now().Add(time.Second * 5))
|
t.client.SetReadDeadline(time.Now().Add(expire))
|
||||||
n, err := t.client.Read(buffer[:])
|
n, err := t.client.Read(buffer[:])
|
||||||
if err == nil && n > 0 {
|
if err == nil && n > 0 {
|
||||||
recvStr := string(buffer[:n])
|
recvStr := string(buffer[:n])
|
||||||
|
@ -144,7 +145,7 @@ func (t *TcpHelper) watch(conn net.Conn) {
|
||||||
} else {
|
} else {
|
||||||
atomic.StoreInt32(t.Full, 1)
|
atomic.StoreInt32(t.Full, 1)
|
||||||
utils.Log(nil, "连接关闭", err)
|
utils.Log(nil, "连接关闭", err)
|
||||||
t.reconnect(config.GetConf().OrderPort)
|
//t.reconnect(config.GetConf().OrderPort)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
time.Sleep(1 * time.Second)
|
time.Sleep(1 * time.Second)
|
||||||
|
|
Loading…
Reference in New Issue