Ejemplo n.º 1
0
 public override Task <Zongsoft.Messaging.MessageBase> DequeueAsync(Zongsoft.Messaging.MessageDequeueSettings settings = null)
 {
     if (settings == null)
     {
         return(this.DequeueOrPeekAsync(0));
     }
     else
     {
         return(this.DequeueOrPeekAsync((int)settings.PollingTimeout.TotalSeconds));
     }
 }
Ejemplo n.º 2
0
 public override Zongsoft.Messaging.MessageBase Dequeue(Zongsoft.Messaging.MessageDequeueSettings settings = null)
 {
     if (settings == null)
     {
         return(Utility.ExecuteTask(() => this.DequeueOrPeekAsync(0)));
     }
     else
     {
         return(Utility.ExecuteTask(() => this.DequeueOrPeekAsync((int)settings.PollingTimeout.TotalSeconds)));
     }
 }
Ejemplo n.º 3
0
        public override async Task <IEnumerable <Zongsoft.Messaging.MessageBase> > DequeueAsync(int count, Zongsoft.Messaging.MessageDequeueSettings settings = null)
        {
            if (count < 1)
            {
                throw new ArgumentOutOfRangeException("count");
            }

            var messages = new List <Zongsoft.Messaging.MessageBase>(count);

            for (int i = 0; i < count; i++)
            {
                var message = await this.DequeueAsync(settings);

                //如果返回的结果为空则表示队列已空
                if (message == null)
                {
                    return(messages);
                }

                messages.Add(message);
            }

            return(messages);
        }