| @@ -2,7 +2,6 @@ package main | |||
| import ( | |||
| "log" | |||
| "time" | |||
| ) | |||
| //openIDSession for a given openID | |||
| @@ -81,7 +80,7 @@ func (m *SessionManager) createSession(openID string) openIDSession { | |||
| s := openIDSession{} | |||
| s.openID = openID | |||
| s.count = 0 | |||
| s.jobs = make(chan InWechatMsg, 200) | |||
| s.jobs = make(chan InWechatMsg, 50) | |||
| s.data, _ = getCurrentSesssion(openID) //either load or create new | |||
| m.sessions[openID] = s //register it to memory | |||
| return s | |||
| @@ -129,15 +128,9 @@ func (m *SessionManager) startJob(openID string) { | |||
| for hasJob { | |||
| select { | |||
| case v := <-m.sessions[openID].jobs: | |||
| if v.header.FromUserName != openID { | |||
| log.Println("Error: Weird Message below ...") | |||
| log.Println(v) | |||
| log.Fatalf("Error: worker thread for %s, see different id=%s \n", openID, v.header.FromUserName) | |||
| } | |||
| log.Println(" Processing job..") | |||
| log.Println(v) | |||
| time.Sleep(5 * time.Second) | |||
| kfSendTxt(openID, "Job Processed "+v.body.(TextMsg).Content) | |||
| m.checkOpenID(openID, v) | |||
| s := m.sessions[openID] | |||
| s.data.incomingMsg(v) //<=== main logic for processing each incoming message | |||
| jobFinished.consumed++ | |||
| default: | |||
| hasJob = false | |||
| @@ -146,3 +139,11 @@ func (m *SessionManager) startJob(openID string) { | |||
| m.done <- jobFinished //notify parent that we have done | |||
| return | |||
| } | |||
| func (m *SessionManager) checkOpenID(openID string, v InWechatMsg) { | |||
| if v.header.FromUserName != openID { | |||
| log.Println("Error: Weird Message below ...") | |||
| log.Println(v) | |||
| log.Fatalf("Error: worker thread for %s, see different id=%s \n", openID, v.header.FromUserName) | |||
| } | |||
| } | |||