Название: Сохранение работы основного потока при падении дополнительных. Отправлено: unduty от Июнь 13, 2021, 11:00 Доброе время суток, Уважаемы гуру, прошу подсказать принцип организации стабильного консольного приложения на сервере.
Имеется три потока - "стабильный" основной поток запускающий остальные - поток со "стабильным" не меняемым кодом собирает информацию и должен работать при падении третьего - поток с нестабильным изменяемым и сложным кодом в котором возможно падение. Какие есть механизмы для контроля и перезапуска третьего потока при падении, при условии постоянной работы второго потока ? Название: Re: Сохранение работы основного потока при падении дополнительных. Отправлено: Igors от Июнь 13, 2021, 11:09 Выбора тут нет, чтобы перезапускать - надо сначала дать упавшей нитке выйти, др надежных способов ее прибить нет. Ну значит в ней юзать try/catch, по сути это все
Название: Re: Сохранение работы основного потока при падении дополнительных. Отправлено: Old от Июнь 13, 2021, 11:38 Доброе время суток, Уважаемы гуру, прошу подсказать принцип организации стабильного консольного приложения на сервере. Можно перейти на микросервисную архитектуру - на каждую "работу" свой процесс.Имеется три потока - "стабильный" основной поток запускающий остальные - поток со "стабильным" не меняемым кодом собирает информацию и должен работать при падении третьего - поток с нестабильным изменяемым и сложным кодом в котором возможно падение. Какие есть механизмы для контроля и перезапуска третьего потока при падении, при условии постоянной работы второго потока ? Основной процесс запускает и контроллирует работу остальных процессов. Он может не только контроллировать, что запущенный им процесс еще активен (не упал), но и что он не завис. Если дочерний процесс упал или повис, то основной может безопастно его убить и перезапустить. Общаться все процессы могут через очередь сообщений (MQ), их много разных с разными возможностями. Эта архитектура легко маштабируется в будущем, например если понадобится несколько процессов-добытчиков и несколько процессов-обработчиков. Название: Re: Сохранение работы основного потока при падении дополнительных. Отправлено: Racheengel от Июнь 21, 2021, 16:18 WatchDog же :)
Название: Re: Сохранение работы основного потока при падении дополнительных. Отправлено: Old от Июнь 21, 2021, 16:21 WatchDog же :) И что? :)Поняли что поток завис, что с ним дальше делать? Название: Re: Сохранение работы основного потока при падении дополнительных. Отправлено: Racheengel от Июнь 22, 2021, 12:12 WatchDog же :) И что? :)Поняли что поток завис, что с ним дальше делать? Так по условиям задачи упал, а не завис. Ошибку выдать и перезапустить :) Название: Re: Сохранение работы основного потока при падении дополнительных. Отправлено: Fregloin от Июль 28, 2021, 11:30 Detached tgreads
|