Автоматический запуск и мониторинг нескольких экземпляров пользовательского приложения C ++ / C #, возможно? - PullRequest
0 голосов
/ 25 сентября 2019

Хорошо, я думаю, мне нужно немного прояснить ситуацию, извините.У меня нет проблем с приложением само по себе.он запускает один или несколько экземпляров просто отлично.у нас есть встроенный механизм для предотвращения вмешательства между экземплярами, блокировки файлов / записей и т. д.

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

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

Каков наилучший подход для этой настройки.


У меня есть собственное приложение, написанное на смешанном API C ++ и C #.это анализатор обработки файлов для процесса EDI, который берет данные из плоских файлов или представление плоских файлов из таблицы БД (у нас есть другие модули, которые хранят содержимое плоского файла в поле БД varchar) и обрабатывает и хранит данные в соответствующих таблицах БД,по большей части он работает нормально, но нескольким клиентам необходимо запустить несколько его экземпляров, чтобы ускорить процесс.

Проблема заключается в том, что когда происходит сбой приложения, я не знаю автоматического способа идентификации сбойного экземпляра, его закрытия и перезапуска.

нужна помощь, чтобы определить мои параметры здесь.Как я могу запускать один и тот же EXE-файл несколько раз, но отслеживать и управлять каждым из них в случае неправильной работы экземпляра.

возможно изменение кода, но C ++ не является моим основным языком, поэтому для меня будет кошмаром делать какие-либо обширные изменения.

PS> приложение представляет собой смесь модулей C ++ и C #с базой данных MSSQL DB

спасибо.

процесс контролируется с помощью MSSQL SP.проблема может быть выявлена ​​по удаче обработанных новых записей и других факторов

. Мои потребности должны быть в состоянии 1. запустить несколько экземпляров приложения одновременно.2. отслеживать каждый экземпляр запущенного EXE-файла и, если обнаружена давка, уничтожить и перезапустить этот экземпляр.У меня в приложении есть переключатель уничтожения, который может корректно его выключить, но мне нужен способ контролировать и перезапускать его.но только этот.

...