Что такое эффективный способ входа в существующую систему - PullRequest
0 голосов
/ 08 марта 2012

В моей системе установлено следующее:

  • 4 папки с файлами
  • 5 Приложения, которые выполняют некоторую обработку файлов в папках, а затем перемещают файлы в следующую папку (обработка: чтение файлов, обновление базы данных ..)

Процесс определяется этапами: 1,2,3,4,5.
По мере перемещения файлов поле Stage в них обновляется до следующей стадии.

Иногда в системе возникают исключения, не обязательно исключения в коде, но исключения в процессе.
Например, при передаче файла в следующую папку произошла ошибка. В этом случае этап не обновляется, и в БД для этого файла записывается запись.

Что я хочу сделать, каков наилучший подход?

Я хочу подключить какую-либо утилиту или добавить код в приложения, которые будут фиксировать любые исключения в процессе. Например, если файл не был перемещен, я хочу знать, на какой стадии и почему. Это поможет выяснить, как происходит процесс.
Мне нужно что-то, что обеспечит общее состояние процесса.
Теперь убедитесь, как это сделать с архитектурной точки зрения.

1 Ответ

1 голос
/ 08 марта 2012

Планировщик? Ну, в любом случае, это может выбить эту идею.

Код выхода по-прежнему работает с дос дней.

это свойство класса приложения (0 по умолчанию) является успешным

Итак, в вашем приложении вы обнаружите ошибку и установите для ApplicationExitCode какое-то значение, например 1703 (бу-ху)

Application.ShutDown(1703);// is the .net4 way

Однако, учитывая, что, по-видимому, планировщик просто запускает приложение, вам нужно было бы все это записать. Можно также написать обычную dll для ведения журнала и добавить ее в каждое приложение, чтобы не вмешиваться в это, особенно если вы хотите того же поведения, если оно запускается извне планировщика.

Другой вариант - делегирование. то есть вы пишете приложение, которое запускает приложение (передается как параметр командной строки) и регистрирует результат (например, с помощью кода завершения), а затем изменяет элементы планировщика, чтобы вызывать его с необходимым параметром.

...