/// <summary> /// Выполняет обработку запроса тренировки нейросети. /// </summary> public void Process() { try { //сбрасываем текущий контекст выполнения для второстепенного потока выполнения запроса. RuntimeContext.ResetCurrent(); //получаем экземпляр запроса. ISkyTrainRequest request = SkyContext.Current.ObjectAdapters.TrainRequests.GetObject(this.RequestID, true); //выполняем обработку запроса. try { //тренируем сеть. request.Train(); } catch (Exception ex) { //устанавливаем текст ошибки. request.ErrorMessage = ex.ToString(); } finally { //устанавливаем статус завершённого запроса. request.Complete(); } } catch (Exception ex) { //устанавливаем признак необходимости большой задержки из-за непредвиденной ошибки. SkyServiceTimer.HasUnhandledExecutionError = true; //логируем необработанную ошибку. SkyTrainRequestServiceTimer.WriteErrorLog(ex); } }
/// <summary> /// Контекст обучения сети. /// </summary> /// <param name="request"></param> public TrainOperationContext(ISkyTrainRequest request) { Request = request ?? throw new ArgumentNullException(nameof(request)); }