feat(cv): qualify templates and reliable local import processing
This commit is contained in:
@@ -107,7 +107,8 @@ public sealed class UserOperationStore(JobTrackerContext db, TimeProvider timePr
|
||||
public async Task<UserOperationLease?> ClaimNextAsync(
|
||||
TimeSpan leaseDuration,
|
||||
CancellationToken cancellationToken,
|
||||
IReadOnlyCollection<string>? allowedTaskTypes = null)
|
||||
IReadOnlyCollection<string>? allowedTaskTypes = null,
|
||||
bool documentImportsOnly = false)
|
||||
{
|
||||
if (db.CurrentUserId is not null) throw new InvalidOperationException("Worker claims require a neutral background scope.");
|
||||
ValidateLeaseDuration(leaseDuration);
|
||||
@@ -123,6 +124,12 @@ public sealed class UserOperationStore(JobTrackerContext db, TimeProvider timePr
|
||||
(operation.DeadlineAtUtc == null || operation.DeadlineAtUtc > now));
|
||||
if (allowedTaskTypes is { Count: > 0 })
|
||||
candidates = candidates.Where(operation => allowedTaskTypes.Contains(operation.TaskType));
|
||||
if (documentImportsOnly)
|
||||
candidates = candidates.Where(operation => operation.TaskType == CvProcessingQueue.TaskType &&
|
||||
operation.SubjectType == CvProcessingQueue.SubjectType &&
|
||||
db.CvExtractionRuns.IgnoreQueryFilters().Any(run => run.OwnerUserId == operation.OwnerUserId &&
|
||||
run.Id.ToString() == operation.SubjectId && run.ParserVersion == Controllers.ProfileCvController.DocumentParserVersion &&
|
||||
run.Trigger == "document_import"));
|
||||
var candidateIds = await candidates
|
||||
.OrderByDescending(operation => operation.Priority)
|
||||
.ThenBy(operation => operation.CreatedAtUtc)
|
||||
|
||||
Reference in New Issue
Block a user