public virtual Task <bool> ReceiveAsync <T>(T message, QueueMessageContext messageContext, ReceiveAsyncDelegate <T>?callback = null) where T : class { if (Next != null) { return(Next.ReceiveAsync(message, messageContext, callback)); } return(callback != null?callback(message, messageContext) : Task.FromResult(false)); }
public Task <bool> ReceiveAsync <T>(T message, QueueMessageContext messageContext, ReceiveAsyncDelegate <T> callback) where T : class { if (_mw == null) { return(callback(message, messageContext)); } return(_mw.ReceiveAsync(message, messageContext, callback)); }
public override async Task <bool> ReceiveAsync <T>(T message, QueueMessageContext messageContext, ReceiveAsyncDelegate <T>?callback = null) { var result = await base.ReceiveAsync(message, messageContext, callback); if (result) { Received++; } return(result); }
public override Task <bool> ReceiveAsync <T>(T message, QueueMessageContext messageContext, ReceiveAsyncDelegate <T>?callback = null) { var tracer = GetTracer(); if (tracer != null) { var transaction = tracer.CurrentTransaction; if (transaction == null) { return(tracer.CaptureTransaction($"Process {message.GetType().FullName}", ApiConstants.TypeRequest, () => base.ReceiveAsync(message, messageContext, callback), DistributedTracingData.TryDeserializeFromString(messageContext.RequestId))); } return(transaction.CaptureSpan($"Process {message.GetType().FullName}", ApiConstants.TypeExternal, () => base.ReceiveAsync(message, messageContext, callback), "Queue")); } return(base.ReceiveAsync(message, messageContext, callback)); }
protected Task <bool> ProcessMessageAsync <T>(T message, QueueMessageContext context, ReceiveAsyncDelegate <T>?callback = null) where T : class { callback ??= ReceiveAsync; return(_pipeline.ReceiveAsync(message, context, callback)); }
public Task<OwinWebSocketReceiveMessage> ReceiveAsync(ArraySegment<byte> buffer, CancellationToken cancel) { //TODO: avoid ContinueWith when completed synchronously return ReceiveAsyncDelegate.Invoke(buffer, cancel) .ContinueWith(tuple => new OwinWebSocketReceiveMessage(tuple.Result)); }
public override Task <bool> ReceiveAsync <T>(T message, QueueMessageContext messageContext, ReceiveAsyncDelegate <T>?callback = null) { return(FailOnReceive ? Task.FromResult(false) : base.ReceiveAsync(message, messageContext, callback)); }