Beispiel #1
0
// 接收和报告错误
func reportError(
	scheduler scheduler.MKScheduler,
	record MKRecord,
	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)
		}
	}()
}