/// <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);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Контекст обучения сети.
 /// </summary>
 /// <param name="request"></param>
 public TrainOperationContext(ISkyTrainRequest request)
 {
     Request = request ?? throw new ArgumentNullException(nameof(request));
 }