public async Task Flush() { while (true) { var dequeueSize = events.Count < _settings.Value.BatchSize ? events.Count : _settings.Value.BatchSize; var chunk = events .DequeueChunk(dequeueSize) .ToList(); if (!chunk.Any()) { break; } var path = Path.Combine( CommonHelper.MapPath(_packStoreOptions.TempStorePath), $"{CommonHelper.NewSequentialGuid().ToString()}.log"); MessagePackHelper.ToPack(path, chunk); await Task.CompletedTask; } }
public async Task <IEnumerable <object> > GetMessages() { await MessageLock.WaitAsync(); lastPoll = DateTime.UtcNow; return(messages.DequeueChunk()); }
public async Task Flush() { _logger.LogTrace("Flushing honeycomb events"); while (true) { var dequeueSize = events.Count < _settings.Value.BatchSize ? events.Count : _settings.Value.BatchSize; var chunk = events .DequeueChunk(dequeueSize) .ToList(); if (!chunk.Any()) { break; } await SendBatchAsync(chunk); } }
public async Task <IEnumerable <object> > GetMessages(CancellationToken requestAborted) { try { try { lastPollLock.Wait(); pollInProgress = true; } finally { lastPollLock.Release(); } await messageLock.WaitAsync(requestAborted); return(messages.DequeueChunk()); } catch (OperationCanceledException) { return(null); } finally { try { lastPollLock.Wait(); pollInProgress = false; lastPoll = DateTimeOffset.UtcNow; } finally { lastPollLock.Release(); } } }
public IEnumerable <object> GetMessages() { lastPoll = DateTime.UtcNow; return(messages.DequeueChunk()); }