private async Task CleanupSoftDeletedStacksAsync(JobContext context) { var stackResults = await _stackRepository.GetAllAsync(q => q.SoftDeleteMode(SoftDeleteQueryMode.DeletedOnly).SnapshotPaging().PageLimit(100)).AnyContext(); _logger.LogInformation("Cleaning up {StackTotal} soft deleted stack(s)", stackResults.Total); while (stackResults.Documents.Count > 0 && !context.CancellationToken.IsCancellationRequested) { foreach (var stack in stackResults.Documents) { using (_logger.BeginScope(new ExceptionlessState().Organization(stack.OrganizationId).Project(stack.ProjectId))) { await RemoveStackAsync(stack, context).AnyContext(); // Sleep so we are not hammering the backend. await SystemClock.SleepAsync(TimeSpan.FromSeconds(5)).AnyContext(); } } if (context.CancellationToken.IsCancellationRequested || !await stackResults.NextPageAsync().AnyContext()) { break; } } }