Jelajahi Sumber

default goroutine recover

marion 5 tahun lalu
induk
melakukan
8fc13c9a41
1 mengubah file dengan 5 tambahan dan 14 penghapusan
  1. 5 14
      utils/queue/chan_pool.go

+ 5 - 14
utils/queue/chan_pool.go

@@ -53,13 +53,6 @@ func (w *ChanWorker) Start(callback func(workerId int, msg interface{})) {
 	w.closeWait()
 }
 
-func (w *ChanWorker) Stop() {
-	go func(w *ChanWorker) {
-		defer utils.DefaultGoroutineRecover(w.log, `chan池工作对象关闭`)
-		w.quit <- true
-	}(w)
-}
-
 func (w *ChanWorker) closeWait() {
 	go func(w *ChanWorker) {
 		defer utils.DefaultGoroutineRecover(w.log, `chan池关闭`)
@@ -69,7 +62,7 @@ func (w *ChanWorker) closeWait() {
 		for {
 			select {
 			case <-c:
-				w.Stop()
+				w.quit <- true
 			}
 		}
 	}(w)
@@ -119,13 +112,11 @@ func (d *ChanDispatcher) dispatch() {
 		for {
 			select {
 			case msg := <-d.MsgQueue:
-				go func(d *ChanDispatcher, msg interface{}) {
-					// 从工作管道池中尝试取出一个空闲(未阻塞)的工作管道,无空闲工作管道时阻塞
-					jobChannel := <-d.WorkerPool
+				// 从工作管道池中尝试取出一个空闲(未阻塞)的工作管道,无空闲工作管道时阻塞
+				jobChannel := <-d.WorkerPool
 
-					// 将一条消息发送给当前工作管道
-					jobChannel <- msg
-				}(d, msg)
+				// 将一条消息发送给当前工作管道
+				jobChannel <- msg
 			}
 		}
 	}(d)