Browse Source
Optimize event retry time evaluation in inbox classes
pull/23563/head
maliming
5 months ago
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4
2 changed files with
4 additions and
2 deletions
-
framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DistributedEvents/DbContextEventInbox.cs
-
framework/src/Volo.Abp.MongoDB/Volo/Abp/MongoDB/DistributedEvents/MongoDbContextEventInbox.cs
|
|
|
@ -47,11 +47,12 @@ public class DbContextEventInbox<TDbContext> : IDbContextEventInbox<TDbContext> |
|
|
|
transformedFilter = InboxOutboxFilterExpressionTransformer.Transform<IIncomingEventInfo, IncomingEventRecord>(filter)!; |
|
|
|
} |
|
|
|
|
|
|
|
var now = Clock.Now; |
|
|
|
var outgoingEventRecords = await dbContext |
|
|
|
.IncomingEvents |
|
|
|
.AsNoTracking() |
|
|
|
.Where(x => x.Status == IncomingEventStatus.Pending) |
|
|
|
.Where(x => x.NextRetryTime == null || x.NextRetryTime <= Clock.Now) |
|
|
|
.Where(x => x.NextRetryTime == null || x.NextRetryTime <= now) |
|
|
|
.WhereIf(transformedFilter != null, transformedFilter!) |
|
|
|
.OrderBy(x => x.CreationTime) |
|
|
|
.Take(maxCount) |
|
|
|
|
|
|
|
@ -61,11 +61,12 @@ public class MongoDbContextEventInbox<TMongoDbContext> : IMongoDbContextEventInb |
|
|
|
transformedFilter = InboxOutboxFilterExpressionTransformer.Transform<IIncomingEventInfo, IncomingEventRecord>(filter)!; |
|
|
|
} |
|
|
|
|
|
|
|
var now = Clock.Now; |
|
|
|
var outgoingEventRecords = await dbContext |
|
|
|
.IncomingEvents |
|
|
|
.AsQueryable() |
|
|
|
.Where(x => x.Status == IncomingEventStatus.Pending) |
|
|
|
.Where(x => x.NextRetryTime == null || x.NextRetryTime <= Clock.Now) |
|
|
|
.Where(x => x.NextRetryTime == null || x.NextRetryTime <= now) |
|
|
|
.WhereIf(transformedFilter != null, transformedFilter!) |
|
|
|
.OrderBy(x => x.CreationTime) |
|
|
|
.Take(maxCount) |
|
|
|
|