From dc60aae3814a0588129823fdc77bdafaebec19df Mon Sep 17 00:00:00 2001 From: ouqiang Date: Tue, 30 May 2017 09:46:35 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9E=E6=8E=A5=E8=BF=9C=E7=A8=8B=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E5=99=A8=E5=A4=B1=E8=B4=A5,=20=E9=87=8D=E8=AF=9560?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/rpc/client/client.go | 21 ++++++++++++++++++++- modules/rpc/grpcpool/grpc_pool.go | 2 +- templates/task/task_form.html | 2 +- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/modules/rpc/client/client.go b/modules/rpc/client/client.go index 5f7eafc..3c95c26 100644 --- a/modules/rpc/client/client.go +++ b/modules/rpc/client/client.go @@ -12,7 +12,26 @@ import ( "github.com/ouqiang/gocron/modules/logger" ) +var ( + errUnavailable = errors.New("无法连接远程服务器") +) + func Exec(ip string, port int, taskReq *pb.TaskRequest) (string, error) { + tryTimes := 60 + i := 0 + for i < tryTimes { + output, err := exec(ip, port, taskReq) + if err != errUnavailable { + return output, err + } + i++ + time.Sleep(2 * time.Second) + } + + return "", errUnavailable +} + +func exec(ip string, port int, taskReq *pb.TaskRequest) (string, error) { defer func() { if err := recover(); err != nil { logger.Error("panic#rpc/client.go:Exec#", err) @@ -53,7 +72,7 @@ func parseGRPCError(err error, conn *grpc.ClientConn, connClosed *bool) (string, case codes.Unavailable: conn.Close() *connClosed = true - return "", errors.New("无法连接远程服务器") + return "", errUnavailable case codes.DeadlineExceeded: return "", errors.New("执行超时, 强制结束") } diff --git a/modules/rpc/grpcpool/grpc_pool.go b/modules/rpc/grpcpool/grpc_pool.go index a550278..ed229df 100644 --- a/modules/rpc/grpcpool/grpc_pool.go +++ b/modules/rpc/grpcpool/grpc_pool.go @@ -104,7 +104,7 @@ func (p *GRPCPool) newCommonPool(addr string) (error) { } return ErrInvalidConn }, - IdleTimeout: 5 * time.Minute, + IdleTimeout: 3 * time.Minute, } commonPool, err := pool.NewChannelPool(poolConfig) diff --git a/templates/task/task_form.html b/templates/task/task_form.html index 86e4b0e..6c50fb0 100644 --- a/templates/task/task_form.html +++ b/templates/task/task_form.html @@ -78,8 +78,8 @@