Пример #1
0
 private void RefreshSplits()
 {
     while (true)
     {
         var changeNumber = splitCache.GetChangeNumber();
         try
         {
             var result = splitChangeFetcher.Fetch(changeNumber);
             if (result == null)
             {
                 break;
             }
             if (changeNumber >= result.till)
             {
                 gates.SplitsAreReady();
                 //There are no new split changes
                 break;
             }
             if (result.splits != null && result.splits.Count > 0)
             {
                 UpdateSplitsFromChangeFetcherResponse(result.splits);
                 splitCache.SetChangeNumber(result.till);
             }
         }
         catch (Exception e)
         {
             Log.Error("Exception caught refreshing splits", e);
             Stop();
         }
         finally
         {
             Log.Info(string.Format("split fetch before: {0}, after: {1}", changeNumber, splitCache.GetChangeNumber()));
         }
     }
 }
Пример #2
0
        public async Task FetchSplits()
        {
            while (true)
            {
                var changeNumber = _splitCache.GetChangeNumber();

                try
                {
                    var result = await _splitChangeFetcher.Fetch(changeNumber);

                    if (result == null)
                    {
                        break;
                    }

                    if (changeNumber >= result.till)
                    {
                        _gates.SplitsAreReady();
                        //There are no new split changes
                        break;
                    }

                    if (result.splits != null && result.splits.Count > 0)
                    {
                        UpdateSplitsFromChangeFetcherResponse(result.splits);
                        _splitCache.SetChangeNumber(result.till);
                    }
                }
                catch (Exception e)
                {
                    _log.Error("Exception caught refreshing splits", e);
                    Stop();
                }
                finally
                {
                    if (_log.IsDebugEnabled)
                    {
                        _log.Debug(string.Format("split fetch before: {0}, after: {1}", changeNumber, _splitCache.GetChangeNumber()));
                    }
                }
            }
        }