コード例 #1
0
        public void Start()
        {
            if (!_options.ShouldRegister)
            {
                return;
            }
            _logger.LogDebug("Registration worker is starting.");

            Task.Factory.StartNew(async() =>
            {
                try
                {
                    await _discoveryClient.RegisterAsync();
                }
                catch (UnhealthyException ex)
                {
                    _isHealthy = false;
                    _logger.LogError(ex.InnerException ?? ex, ex.Message);
                    Restart();
                }
                catch (TimeoutException ex)
                {
                    _isHealthy = false;
                    _logger.LogError(ex.Message);
                    await Task.Delay(1000 * 30);
                    Restart();
                }
                catch (Exception ex)
                {
                    _logger.LogDebug(ex.Message);
                    throw;
                }
            }, _cts.Token);
        }