コード例 #1
0
ファイル: monitor.go プロジェクト: firememory/evilboy
// 接收和报告错误。
func reportError(
	scheduler sched.Scheduler,
	record Record,
	stopNotifier <-chan byte) {
	go func() {
		// 等待调度器开启
		waitForSchedulerStart(scheduler)
		for {
			// 查看监控停止通知器
			select {
			case <-stopNotifier:
				return
			default:
			}
			errorChan := scheduler.ErrorChan()
			if errorChan == nil {
				return
			}
			err := <-errorChan
			if err != nil {
				errMsg := fmt.Sprintf("Error (received from error channel): %s", err)
				record(2, errMsg)
			}
			time.Sleep(time.Microsecond)
		}
	}()
}