Kevin 6 سال پیش
والد
کامیت
898befdf8f

+ 64 - 50
Gene_point_Service/.idea/workspace.xml

@@ -3,10 +3,8 @@
   <component name="ChangeListManager">
     <list default="true" id="83c812bd-fdcd-4344-b866-5ecaac02b490" name="Default Changelist" comment="">
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/api" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/api" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/src/dashoo.cn/api/main.go" beforeDir="false" afterPath="$PROJECT_DIR$/src/dashoo.cn/api/main.go" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -19,11 +17,11 @@
   </component>
   <component name="FileEditorManager">
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
-      <file pinned="false" current-in-tab="false">
+      <file pinned="false" current-in-tab="true">
         <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="308">
-              <caret line="42" column="37" selection-start-line="42" selection-start-column="37" selection-end-line="42" selection-end-column="37" />
+            <state relative-caret-position="303">
+              <caret line="97" column="17" lean-forward="true" selection-start-line="97" selection-start-column="17" selection-end-line="97" selection-end-column="17" />
               <folding>
                 <element signature="e#14#173#0" expanded="true" />
               </folding>
@@ -32,28 +30,19 @@
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go">
+        <entry file="file://D:/Development/GO/src/runtime/panic.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="667">
-              <caret line="38" column="21" lean-forward="true" selection-start-line="38" selection-start-column="21" selection-end-line="38" selection-end-column="21" />
+            <state relative-caret-position="334">
+              <caret line="696" column="9" selection-start-line="696" selection-start-column="9" selection-end-line="698" selection-end-column="48" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
-        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go">
-          <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="195">
-              <caret line="108" column="19" lean-forward="true" selection-start-line="108" selection-start-column="19" selection-end-line="108" selection-end-column="19" />
-            </state>
-          </provider>
-        </entry>
-      </file>
-      <file pinned="false" current-in-tab="true">
-        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go">
+        <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="10">
-              <caret line="401" column="74" lean-forward="true" selection-start-line="401" selection-start-column="74" selection-end-line="401" selection-end-column="74" />
+            <state relative-caret-position="736">
+              <caret line="50" column="63" selection-start-line="50" selection-start-column="45" selection-end-line="50" selection-end-column="63" />
             </state>
           </provider>
         </entry>
@@ -65,6 +54,7 @@
       <find>interrupt</find>
       <find>ModifyTaskStatusCode</find>
       <find>TransPositionToNo</find>
+      <find>rack_id</find>
     </findStrings>
   </component>
   <component name="GOROOT" path="D:\Development\GO" />
@@ -90,16 +80,16 @@
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse_test.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/base.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/routers/router.go" />
-        <option value="$PROJECT_DIR$/src/dashoo.cn/api/main.go" />
-        <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go" />
         <option value="$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go" />
+        <option value="$PROJECT_DIR$/src/dashoo.cn/api/main.go" />
       </list>
     </option>
   </component>
-  <component name="ProjectFrameBounds">
-    <option name="x" value="1913" />
-    <option name="width" value="1445" />
+  <component name="ProjectFrameBounds" extendedState="6">
+    <option name="x" value="1923" />
+    <option name="width" value="2564" />
     <option name="height" value="1047" />
   </component>
   <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -239,16 +229,16 @@
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="1913" y="0" width="1445" height="1047" extended-state="0" />
+    <frame x="1912" y="-8" width="2576" height="1056" extended-state="6" />
     <editor active="true" />
     <layout>
-      <window_info active="true" content_ui="combo" id="Project" order="0" sideWeight="0.49766356" visible="true" weight="0.28199565" />
+      <window_info content_ui="combo" id="Project" order="0" sideWeight="0.49766356" visible="true" weight="0.1575179" />
       <window_info id="Structure" order="1" sideWeight="0.50233644" side_tool="true" weight="0.14701195" />
       <window_info id="Favorites" order="2" sideWeight="0.50233644" side_tool="true" weight="0.14701195" />
       <window_info anchor="bottom" id="Message" order="0" />
       <window_info anchor="bottom" id="Find" order="1" sideWeight="0.49960256" weight="0.0" />
       <window_info anchor="bottom" id="Run" order="2" weight="0.61915886" />
-      <window_info anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" weight="0.32485548" />
+      <window_info active="true" anchor="bottom" id="Debug" order="3" sideWeight="0.89467406" visible="true" weight="0.35260117" />
       <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
       <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
       <window_info anchor="bottom" id="TODO" order="6" weight="0.32943925" />
@@ -288,10 +278,6 @@
     <option name="version" value="1" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/business/converseService/converseService.go" />
-    <entry file="file://$PROJECT_DIR$/controllers/base.go" />
-    <entry file="file://$PROJECT_DIR$/controllers/converse/converse.go" />
-    <entry file="file://$PROJECT_DIR$/business/converseService/converse.go" />
     <entry file="file://$PROJECT_DIR$/src/api/main.go" />
     <entry file="file://$PROJECT_DIR$/src/api/controllers/converse/converse.go" />
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService_test.go" />
@@ -538,41 +524,69 @@
         </state>
       </provider>
     </entry>
-    <entry file="file://E:/DASHOO/base_go/src/github.com/gorilla/websocket/conn.go">
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="275">
-          <caret line="1023" column="15" selection-start-line="1023" selection-start-column="15" selection-end-line="1023" selection-end-column="15" />
+        <state relative-caret-position="989">
+          <caret line="401" column="74" selection-start-line="401" selection-start-column="74" selection-end-line="401" selection-end-column="74" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="308">
-          <caret line="42" column="37" selection-start-line="42" selection-start-column="37" selection-end-line="42" selection-end-column="37" />
-          <folding>
-            <element signature="e#14#173#0" expanded="true" />
-          </folding>
+        <state relative-caret-position="11">
+          <caret line="100" column="19" lean-forward="true" selection-start-line="100" selection-start-column="19" selection-end-line="100" selection-end-column="19" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/controllers/converse/converse.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="667">
-          <caret line="38" column="21" lean-forward="true" selection-start-line="38" selection-start-column="21" selection-end-line="38" selection-end-column="21" />
+        <state relative-caret-position="736">
+          <caret line="50" column="63" selection-start-line="50" selection-start-column="45" selection-end-line="50" selection-end-column="63" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converse.go">
+    <entry file="file://D:/Development/GO/src/io/ioutil/ioutil.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="195">
-          <caret line="108" column="19" lean-forward="true" selection-start-line="108" selection-start-column="19" selection-end-line="108" selection-end-column="19" />
+        <state relative-caret-position="257">
+          <caret line="36" column="17" selection-start-line="36" selection-start-column="17" selection-end-line="36" selection-end-column="17" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/business/converseService/converseService.go">
+    <entry file="file://D:/Development/GO/src/bytes/buffer.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="165">
+          <caret line="56" column="17" selection-start-line="56" selection-start-column="17" selection-end-line="56" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://E:/DASHOO/base_go/src/github.com/gorilla/websocket/conn.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="303">
+          <caret line="1029" column="22" lean-forward="true" selection-start-line="1029" selection-start-column="22" selection-end-line="1029" selection-end-column="22" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/log/log.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="1683">
+          <caret line="148" column="17" selection-start-line="148" selection-start-column="17" selection-end-line="148" selection-end-column="17" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://D:/Development/GO/src/runtime/panic.go">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="10">
-          <caret line="401" column="74" lean-forward="true" selection-start-line="401" selection-start-column="74" selection-end-line="401" selection-end-column="74" />
+        <state relative-caret-position="334">
+          <caret line="696" column="9" selection-start-line="696" selection-start-column="9" selection-end-line="698" selection-end-column="48" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/dashoo.cn/api/main.go">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="303">
+          <caret line="97" column="17" lean-forward="true" selection-start-line="97" selection-start-column="17" selection-end-line="97" selection-end-column="17" />
+          <folding>
+            <element signature="e#14#173#0" expanded="true" />
+          </folding>
         </state>
       </provider>
     </entry>

BIN
Gene_point_Service/src/dashoo.cn/api/api.exe


+ 1 - 1
Gene_point_Service/src/dashoo.cn/api/controllers/converse/converse.go

@@ -104,7 +104,7 @@ func (this *ConverseController) HandleMessage(n int, message []byte){
 			log.Println("---------修改成功状态-----------")
 			//todo or link to biobank
 			err = this.StatusModify(SUCCESS,taskId)
-		}else if taskType == "task_activate" {
+		}else if taskType == "task_active" {
 			log.Println(">>>>>>>>>>修改激活状态>>>>>>>>>>")
 			err = this.StatusModify(ACTIVE,taskId)
 		}else if taskType == "accept" {

+ 117 - 76
Gene_point_Service/src/dashoo.cn/api/main.go

@@ -12,90 +12,52 @@ import (
 )
 
 //const gpServiceUrl = "ws://39.105.83.226:22225/socket"
+const gpServiceUrl = "ws://39.105.83.226:22368/socket"
 //const gpServiceUrl = "ws://fdgfghfg.oicp.net:48681/socket"
-const gpServiceUrl = "ws://fdgfghfg.oicp.net:23248/socket"
+//const gpServiceUrl = "ws://fdgfghfg.oicp.net:23248/socket"
 
-var conn *websocket.Conn
+//var conn *websocket.Conn
 var err error
 var ctrl converse.ConverseController
+var disconnect = make(chan bool)
 
 func main() {
 	utils.LoadConfig("conf/app.conf")
 
 	// Initialize data.
 	utils.InitDb()
+	//定期清理已完成任务信息
+	go ClearSuccessfulTask()
+
 	interrupt := make(chan os.Signal, 1)
 	signal.Notify(interrupt, os.Interrupt)
-	WebSocketFound()
-	defer conn.Close()
-	ctrl.GetConnection(conn)
-
-
-	done := make(chan struct{})
-
-	//发送请求
-	go func(){
-		cron := cron.New()
-		tick := "*/10 * * * * ?"
-		err = cron.AddFunc(tick, func() {
-			//如果已连接则发送任务
-			if conn != nil {
-				reqMap := ctrl.SearchDatabase()
-				if err != nil {
-					log.Println("read:", err)
-				}
-
-				for k,v := range reqMap {
-					err := conn.WriteJSON(v)
-					if err != nil {
-						log.Println("write:", err)
-					}else{
-						err = ctrl.StatusModify(converse.SENT,k)
-					}
-				}
-			}
-		})
-
-		cron.Start()
-
-	}()
-
-
-	//定期清理任务表已完成信息
-	go func() {
-		cron := cron.New()
-	//每天0时清除任务表
-		tick := "0 0 0 * * ?"
-		err = cron.AddFunc(tick, func() {
-			ctrl.DeleteAccomplishedTask()
-			if err != nil {
-				log.Println("read:", err)
-			}
-		})
-		cron.Start()
-	}()
+	var done = make(chan struct{})
+
+
+	var conn *websocket.Conn
+	conn = WebSocketFound()
+	log.Println("连接成功: %s", conn!=nil)
+	if conn != nil {
+		defer conn.Close()
+		ctrl.GetConnection(conn)
+
+		//发送请求
+		go ListenToSendMsg(conn)
+		//监听消息
+		go ListenToReadMsg(done,conn)
+	}else{
+		go SetDisconnect()
+	}
 
-	// 监听消息
-	go func() {
-		defer close(done)
-		for {
 
-			n, message, err := conn.ReadMessage()
-			if err != nil {
-				log.Println("read:", err)
-				return
-			}
-			log.Printf("recv: %s", message)
-			ctrl.HandleMessage(n,message)
-		}
-	}()
 
 	for {
 
-
 		select {
 		case <-done:
-			return
+			//return
+
+
 			//		case t := <-ticker.C:
 			//			err := c.WriteMessage(websocket.TextMessage, []byte(t.String()))
 			//			if err != nil {
@@ -110,27 +72,106 @@ func main() {
 			err := conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
 			if err != nil {
 				log.Println("write close:", err)
-				return
+				//return
 			}
 			select {
-			case <-done:
-				WebSocketFound()
-				defer conn.Close()
-				ctrl.GetConnection(conn)
-			case <-time.After(time.Second):
+				case <-done:
+				case <-time.After(time.Second*10):
+
+			}
+			//return
+		case <-disconnect:
+			log.Println("服务器连接已断开!")
+			for {
+				select{
+				case <-time.After(time.Second*10):
+					conn = WebSocketFound()
+					if conn != nil {
+						defer conn.Close()
+						ctrl.GetConnection(conn)
+						go ListenToSendMsg(conn)
+						go ListenToReadMsg(done, conn)
+						break
+					}
+					log.Println("连接失败, 等待重新连接........")
+					break
+				}
+
 			}
-			return
 		}
 	}
 
 	log.Println("===============Service_down==============")
-	conn.Close()
+	//conn.Close()
 }
 
-func WebSocketFound(){
+func WebSocketFound() *websocket.Conn{
 	log.Printf("connecting to %s", gpServiceUrl)
-	conn, _, err = websocket.DefaultDialer.Dial(gpServiceUrl, nil)
+	conn, _, err := websocket.DefaultDialer.Dial(gpServiceUrl, nil)
 	if err != nil {
-		log.Fatal("dial:", err)
+		//log.Fatal("dial:", err)
+		log.Println("dial:", err)
+	}
+	return conn
+}
+
+// 监听消息
+func ListenToReadMsg(done chan struct{}, conn *websocket.Conn) {
+	log.Println("监听消息func>>>>>>>>>>>>>>>>>>>")
+	defer close(done)
+	for {
+
+		n, message, err := conn.ReadMessage()
+		if err != nil {
+			log.Println("read:", err)
+			disconnect <- true
+			return
+		}
+		log.Printf("recv: %s", message)
+		ctrl.HandleMessage(n,message)
 	}
+}
+
+//发送请求
+func ListenToSendMsg(conn *websocket.Conn){
+	log.Println("发送消息func>>>>>>>>>>>>>>>>>>>")
+	cron := cron.New()
+	tick := "*/10 * * * * ?"
+	err = cron.AddFunc(tick, func() {
+		//如果已连接则发送任务
+		reqMap := ctrl.SearchDatabase()
+		if err != nil {
+			log.Println("read:", err)
+		}
+
+		for k,v := range reqMap {
+			err := conn.WriteJSON(v)
+			if err != nil {
+				log.Println("write:", err)
+			}else{
+				err = ctrl.StatusModify(converse.SENT,k)
+			}
+		}
+	})
+	cron.Start()
+}
+
+//定期清理任务表已完成信息
+func ClearSuccessfulTask() {
+	log.Println("定期清理任务>>>>>>>>>>>>>>>>>>>")
+	cron := cron.New()
+	//每天0时清除任务表
+	tick := "0 0 0 * * ?"
+	err = cron.AddFunc(tick, func() {
+		ctrl.DeleteAccomplishedTask()
+		if err != nil {
+			log.Println("read:", err)
+		}
+	})
+	cron.Start()
+}
+
+func SetDisconnect(){
+	log.Println("写入连接断开")
+	disconnect <- true
 }