private void OnApplicationStopping()
        {
            _shutdownStarted = DateTime.UtcNow;
            _state.NotifyStopRequested();

            while (_state.RequestsInProgress > 0 && DateTime.UtcNow < _shutdownStarted.Add(_options.ShutdownTimeout))
            {
                _logger.LogInformation($"{DateTime.Now.ToString("HH:mm:ss")} Application stopping, requests in progress: {_state.RequestsInProgress}");
                Thread.Sleep(1000);
            }

            if (_state.RequestsInProgress > 0)
            {
                _logger.LogCritical($"{DateTime.Now.ToString("HH:mm:ss")} Application stopped, requests in progress: {_state.RequestsInProgress}");
            }
            else
            {
                _logger.LogInformation($"{DateTime.Now.ToString("HH:mm:ss")} Application stopped, requests in progress: {_state.RequestsInProgress}");
            }
        }
Example #2
0
 private void OnApplicationStopping()
 {
     _shutdownStarted = DateTime.UtcNow;
     _state.NotifyStopRequested();
 }