У нас есть системный сервис A для нашего приложения. И у нас есть отдельная программа на той же машине для мониторинга состояния службы A. Если A остановлена, эта программа мониторинга может помочь перенаправить запрос пользователя на другую машину.
Однако, когда дамп ядра службы A был сброшен из-за ошибки программного обеспечения, для сброса состояний памяти может потребоваться много времени. В течение этого периода служба A все еще считается работающей, и перенаправление запроса не может произойти. Это влияет на скорость отклика нашего приложения.
Есть ли способ настроить остановку службы до завершения дампа ядра? Мы не хотим отключать дамп ядра для отладки.
На мой взгляд, лучшее решение - улучшить программу монитора.
Если вы проверяете только имя процесса в списке pid, этого недостаточно.
Вместо этого измените программу монитора, чтобы она вела себя как клиент приложения A, и выполните очень быстрое и простое действие в приложении A, чтобы быть действительно уверенным, что оно работает, а если нет, просто немедленно перенаправьте пользователей на другой экземпляр приложения A.