diff --git a/business/jxstore/event/event_tcp.go b/business/jxstore/event/event_tcp.go index 9f38519d5..386683759 100644 --- a/business/jxstore/event/event_tcp.go +++ b/business/jxstore/event/event_tcp.go @@ -76,6 +76,7 @@ func (t *TcpClient) handleConn(c net.Conn) error { c.Write([]byte("ok")) return err } + data = "1e001a020001513132303232303931353030313935390000008a" //证明是心跳 if strings.Contains(data, heartText) || strings.Contains(data, heartTextNew) { printNoData, _ := hex.DecodeString(data[len(heartText) : len(data)-8]) @@ -91,6 +92,7 @@ func (t *TcpClient) handleConn(c net.Conn) error { if t.getClients(printNo) == nil { t.addConn(c, printNo, status) t.buildAllMap(printNo) + t.TimeoutMap[printNo] <- true t.HandleTcpMessages(printNo) t.doPrint(printNo) if status == printerStatusOnline { @@ -170,6 +172,7 @@ func (t *TcpClient) changePrintMsg(data string, orderNo int64, printNo string) ( } func (t *TcpClient) HandleTcpMessages(printNo string) { + fmt.Println("============:", t.getTimeOut(printNo)) var ( db = dao.GetDB() offset, pageSize = 0, 10 @@ -318,6 +321,7 @@ func (t *TcpClient) HandleCheckTcpHeart(key string) { globals.SugarLogger.Debugf("HandleCheckTcpHeart begin key: %s", key) go func() { for { + fmt.Println("============:", t.getTimeOut(key)) select { case <-t.TimeoutMap[key]: t.getClients(key).C.Close() diff --git a/business/jxstore/event/event_tcp_utils.go b/business/jxstore/event/event_tcp_utils.go index 1638ae366..1dfdaa794 100644 --- a/business/jxstore/event/event_tcp_utils.go +++ b/business/jxstore/event/event_tcp_utils.go @@ -192,7 +192,7 @@ func (t *TcpClient) buildAllMap(key string) { defer t.Unlock() t.MsgMap[key] = make(chan *model.PrintMsg, 1024) t.CallBackMap[key] = make(chan string, 1024) - t.TimeoutMap[key] = make(chan bool, 64) + t.TimeoutMap[key] = make(chan bool, 1) } func (t *TcpClient) getPrintStatus(key string) int { diff --git a/business/jxstore/event/print_test.go b/business/jxstore/event/print_test.go index 2f86e47e1..542f93afb 100644 --- a/business/jxstore/event/print_test.go +++ b/business/jxstore/event/print_test.go @@ -5,7 +5,6 @@ import ( "fmt" "git.rosy.net.cn/jx-callback/business/jxutils" "git.rosy.net.cn/jx-callback/business/model" - "net" "strconv" "strings" "testing" @@ -83,36 +82,3 @@ func TestTen216(t *testing.T) { fmt.Println(gg) fmt.Println(kk) } - -func TestBuildTest(s *testing.T) { - l, err := net.Listen("tcp", ":8000") - if err != nil { - fmt.Println("listen error:", err) - return - } - for { - c, err := l.Accept() - if err != nil { - fmt.Println("accept error:", err) - break - } - go func() { - t := NewTcpClient() - if err := t.HandleConnTest(c); err != nil { - t = nil - return - } - }() - } - -} -func (t *TcpClient) HandleConnTest(c net.Conn) error { - c.Write([]byte("")) - t.addConn(c, "1111111", 1) - t.buildAllMap("1111111") - t.HandleTcpMessages("1111111") - t.doPrint("1111111") - changePrinterStatus("1111111", 1) - t.HandleCheckTcpHeart("1111111") - return nil -} diff --git a/main.go b/main.go index 4faaee6fe..c89f66d7c 100644 --- a/main.go +++ b/main.go @@ -9,18 +9,13 @@ import ( "os" "time" - "git.rosy.net.cn/baseapi/platformapi/dingdingapi" - "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxstore/cms" "git.rosy.net.cn/jx-callback/business/jxstore/misc" - "git.rosy.net.cn/jx-callback/business/jxutils/tasks" - beego "github.com/astaxie/beego/server/web" // 导入缺省订单调度器 "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/beegodb" _ "git.rosy.net.cn/jx-callback/business/auth2/authprovider/alipay" @@ -102,21 +97,21 @@ func main() { if !checkCmdFlags() { Init() // 延时的原因是等回调准备好 - if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" { - utils.AfterFuncWithRecover(2*time.Second, func() { - if err := tasks.RefreshDingDingToken(); err != nil { - globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err) - return - } - if globals.IsProductEnv() { - api.DingDingAPI.DeleteCallback() - if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil { - globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err) - } - } - }) - cms.ResetJobTimers() - } + //if globals.IsMainProductEnv() || beego.BConfig.RunMode == "beta" { + // utils.AfterFuncWithRecover(2*time.Second, func() { + // if err := tasks.RefreshDingDingToken(); err != nil { + // globals.SugarLogger.Errorf("RefreshDingDingToken failed with error:%s", err) + // return + // } + // if globals.IsProductEnv() { + // api.DingDingAPI.DeleteCallback() + // if err := api.DingDingAPI.RegisterCallback([]string{dingdingapi.CBTagUserAddOrg, dingdingapi.CBTagUserModifyOrg, dingdingapi.CBTagUserLeaveOrg}, beego.AppConfig.DefaultString("dingdingCallbackToken", ""), beego.AppConfig.DefaultString("dingdingCallbackAESKey", ""), beego.AppConfig.DefaultString("dingdingCallbackURL", "")); err != nil { + // globals.SugarLogger.Warnf("dingding RegisterCallback failed with error:%v", err) + // } + // } + // }) + // cms.ResetJobTimers() + //} if beego.BConfig.RunMode != "prod" { beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" @@ -129,9 +124,9 @@ func main() { } }() - if globals.IsPrintEnv() { - event.ListenTcp() - } + //if globals.IsPrintEnv() { + event.ListenTcp() + //} beego.Run() } }