public async Task Handle(RetryPendingMessages message, IMessageHandlerContext context) { var messageIds = new List <string>(); using (var session = store.OpenAsyncSession()) { var query = session.Advanced .AsyncDocumentQuery <FailedMessageViewIndex.SortAndFilterOptions, FailedMessageViewIndex>() .WhereEquals("Status", (int)FailedMessageStatus.RetryIssued) .AndAlso() .WhereBetweenOrEqual(options => options.LastModified, message.PeriodFrom.Ticks, message.PeriodTo.Ticks) .AndAlso() .WhereEquals(o => o.QueueAddress, message.QueueAddress) .SetResultTransformer(FailedMessageViewTransformer.Name) .SelectFields <FailedMessageView>(fields); using (var ie = await session.Advanced.StreamAsync(query).ConfigureAwait(false)) { while (await ie.MoveNextAsync().ConfigureAwait(false)) { await manager.RemoveFailedMessageRetryDocument(ie.Current.Document.Id) .ConfigureAwait(false); messageIds.Add(ie.Current.Document.Id); } } } await context.SendLocal(new RetryMessagesById { MessageUniqueIds = messageIds.ToArray() }) .ConfigureAwait(false); }
public void Handle(RetryPendingMessages message) { var messageIds = new List <string>(); using (var session = store.OpenSession()) { var query = session.Advanced .LuceneQuery <FailedMessageViewIndex.SortAndFilterOptions, FailedMessageViewIndex>() .WhereEquals("Status", (int)FailedMessageStatus.RetryIssued) .AndAlso() .WhereBetweenOrEqual(options => options.LastModified, message.PeriodFrom.Ticks, message.PeriodTo.Ticks) .AndAlso() .WhereEquals(o => o.QueueAddress, message.QueueAddress) .SetResultTransformer(new FailedMessageViewTransformer().TransformerName) .SelectFields <FailedMessageView>(fields); using (var ie = session.Advanced.Stream(query)) { while (ie.MoveNext()) { manager.RemoveFailedMessageRetryDocument(ie.Current.Document.Id); messageIds.Add(ie.Current.Document.Id); } } } bus.SendLocal(new RetryMessagesById { MessageUniqueIds = messageIds.ToArray() }); }