public async Task <Metrics> PipelineLatency(PipelineMetadata metadata) { var latency = DateTime.Now.Subtract(metadata.Timestamp); await _stats.Timing((long)latency.TotalMilliseconds, nameof(StatMetrics.Time.PipelineLatency)).ConfigureAwait(false); return(this); }
private async Task SendBatchedDataAsync(CancellationToken cancellationToken, PipelineMetadata metadata) { var task = _next?.PushAsync(cancellationToken, _batch.ToImmutableArray(), metadata); _batch.Clear(); _bufferedCount = 0; if (task != null) { await task.ConfigureAwait(false); } }
public void StopProcessTime(MyResultObj resultObj, string filterName) { var metaData = new PipelineMetadata { Filter = filterName, FilterDeltaTime = DateTime.Now.Subtract(ProcessStartTime), InboundDataCount = InboundCount, OutboundDataCount = resultObj.OutboundData?.Count() ?? resultObj.InboundData.Count() }; resultObj.PipelineMetadata.Add(metaData); }
public async Task PushAsync(CancellationToken cancellationToken, TEntity input, PipelineMetadata metadata) { _latestMetadata = metadata; var batchedTask = Task.CompletedTask; if (_bufferedCount + 1 > _batchSize) { batchedTask = SendBatchedDataAsync(cancellationToken, metadata); } _bufferedCount++; _batch.Add(input); await Task.WhenAll(batchedTask, Task.CompletedTask).ConfigureAwait(false); }
public async Task PushAsync(CancellationToken cancellationToken, TInput input, PipelineMetadata metadata) { if (_following != null) { await _following.PushAsync(cancellationToken, input, metadata).ConfigureAwait(false); } }
public async Task PushAsync(CancellationToken cancellationToken, TInput input, PipelineMetadata metadata) { await _action(cancellationToken, input, metadata).ConfigureAwait(false); }
protected override async Task PushToPipeAsync(CancellationToken cancellationToken, TConsumerValue entity, PipelineMetadata pipelineMetadata, AbstractPipe <TConsumerValue> pipe) { await pipe.Head.PushAsync(cancellationToken, entity, pipelineMetadata).ConfigureAwait(false); await _stats.Metric().PipelineLatency(pipelineMetadata).ConfigureAwait(false); }
public Task Send(CancellationToken cancellationToken, JObject json, PipelineMetadata metadata) { return(_producer.ProduceAsync("key", json)); }
public Task <JObject> AddProperty(CancellationToken cancellationToken, JObject json, PipelineMetadata metadata) { json.Add(new JProperty("testProperty", 1)); return(Task.FromResult(json)); }
public async Task PushAsync(CancellationToken cancellationToken, TInput input, PipelineMetadata metadata) { if (_positive == null && _negative == null) { throw new InvalidOperationException("Decision block should have at least one branch"); } var condition = await _condition(cancellationToken, input, metadata).ConfigureAwait(false); var task = condition ? _positive?.PushAsync(cancellationToken, input, metadata) : _negative?.PushAsync(cancellationToken, input, metadata); if (task != null) { await task.ConfigureAwait(false); } }
public async Task PushAsync(CancellationToken cancellationToken, TEntity input, PipelineMetadata metadata) { if (_targets == null) { return; } var tasks = _targets.Select(target => target.PushAsync(cancellationToken, input, metadata)).ToArray(); await Task.WhenAll(tasks).ConfigureAwait(false); }