private void ProcessOutput(EpsOutput output) { var sw = new Stopwatch(); sw.Start(); Log.Debug("Start processing."); Exception exception = null; try { IEpsJobConfig config; using (var session = SessionFactory.OpenSession()) { // проверяем CheckOutput(output); // создаем конфигурацию config = EpsJobConfigurator.Configure(output, session, HandleTaskComplete); } // запускаем using (var job = EpsJobFactory.CreateJob(config)) job.Execute(); } catch (Exception ex) { exception = ex; } finally { sw.Stop(); HandleComplete(output.OutputID, exception, sw.Elapsed); } }
private void ProcessOutput(int outputId) { var sw = new Stopwatch(); sw.Start(); Log.DebugFormat("Output {0}. Start processing.", outputId); Exception exception = null; try { IEpsJobConfig config; using (var session = SessionFactory.OpenSession()) { // получаем output var output = session.Get <EpsOutput>(outputId); // проверяем CheckOutput(output); // создаем конфигурацию config = EpsJobConfigurator.Configure(output, session, HandleTaskComplete); } // запускаем using (var job = EpsJobFactory.CreateJob(config)) job.Execute(); } catch (Exception ex) { exception = ex; // ничего дальше не пробрасываем - просто меняем статус (в finally) } finally { sw.Stop(); HandleComplete(outputId, exception, sw.Elapsed); } }