feat(processing): persist safe atomic operation history
This commit is contained in:
@@ -23,8 +23,8 @@ public sealed partial class ProfileCvController
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
if (context is null) return;
|
||||
var lease = context.Lease;
|
||||
var updated = await _db.UserOperations.Where(o => o.Id == lease.OperationId && o.LeaseToken == lease.LeaseToken && o.Status == OperationStatuses.Running && o.CancellationRequestedAtUtc == null && o.LeaseExpiresAtUtc > DateTime.UtcNow)
|
||||
.ExecuteUpdateAsync(s => s.SetProperty(o => o.ProgressStage, stage), cancellationToken);
|
||||
var updated = await new UserOperationStore(_db, TimeProvider.System)
|
||||
.ReportStageAsync(lease.OperationId, lease.LeaseToken, stage, cancellationToken);
|
||||
if (updated != 1) throw new OperationCanceledException("The document processing lease is no longer active.", cancellationToken);
|
||||
}
|
||||
await Stage("cv_validating_file");
|
||||
|
||||
Reference in New Issue
Block a user