Пример #1
0
        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));
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
 protected Task <bool> ProcessMessageAsync <T>(T message, QueueMessageContext context,
                                               ReceiveAsyncDelegate <T>?callback = null) where T : class
 {
     callback ??= ReceiveAsync;
     return(_pipeline.ReceiveAsync(message, context, callback));
 }
Пример #6
0
 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));
 }
Пример #7
0
 public override Task <bool> ReceiveAsync <T>(T message, QueueMessageContext messageContext,
                                              ReceiveAsyncDelegate <T>?callback = null)
 {
     return(FailOnReceive ? Task.FromResult(false) : base.ReceiveAsync(message, messageContext, callback));
 }