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())); } } }
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())); } } } }