Browse Source

Minor performance improvement.

pull/556/head
Sebastian 5 years ago
parent
commit
c8ca7cfa08
  1. 28
      backend/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs

28
backend/src/Squidex.Domain.Apps.Entities.MongoDb/Rules/MongoRuleEventRepository.cs

@ -106,21 +106,19 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Rules
.Set(x => x.JobResult, RuleJobResult.Cancelled)); .Set(x => x.JobResult, RuleJobResult.Cancelled));
} }
public async Task UpdateAsync(RuleJob job, RuleJobUpdate update) public Task UpdateAsync(RuleJob job, RuleJobUpdate update)
{ {
Guard.NotNull(job, nameof(job)); Guard.NotNull(job, nameof(job));
Guard.NotNull(update, nameof(update)); Guard.NotNull(update, nameof(update));
if (update.ExecutionResult == RuleResult.Success) return Task.WhenAll(
{ UpdateStatisticsAsync(job, update),
await statisticsCollection.IncrementSuccess(job.AppId, job.RuleId, update.Finished); UpdateEventAsync(job, update));
}
else
{
await statisticsCollection.IncrementFailed(job.AppId, job.RuleId, update.Finished);
} }
await Collection.UpdateOneAsync(x => x.Id == job.Id, private Task UpdateEventAsync(RuleJob job, RuleJobUpdate update)
{
return Collection.UpdateOneAsync(x => x.Id == job.Id,
Update Update
.Set(x => x.Result, update.ExecutionResult) .Set(x => x.Result, update.ExecutionResult)
.Set(x => x.LastDump, update.ExecutionDump) .Set(x => x.LastDump, update.ExecutionDump)
@ -129,6 +127,18 @@ namespace Squidex.Domain.Apps.Entities.MongoDb.Rules
.Inc(x => x.NumCalls, 1)); .Inc(x => x.NumCalls, 1));
} }
private async Task UpdateStatisticsAsync(RuleJob job, RuleJobUpdate update)
{
if (update.ExecutionResult == RuleResult.Success)
{
await statisticsCollection.IncrementSuccess(job.AppId, job.RuleId, update.Finished);
}
else
{
await statisticsCollection.IncrementFailed(job.AppId, job.RuleId, update.Finished);
}
}
public Task<IReadOnlyList<RuleStatistics>> QueryStatisticsByAppAsync(Guid appId) public Task<IReadOnlyList<RuleStatistics>> QueryStatisticsByAppAsync(Guid appId)
{ {
return statisticsCollection.QueryByAppAsync(appId); return statisticsCollection.QueryByAppAsync(appId);

Loading…
Cancel
Save