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)); } }
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))); } }
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); }