top_n being respected
This commit is contained in:
parent
2d92397b9a
commit
55494a4803
@ -265,33 +265,70 @@ export async function runPipeline(config: Partial<PipelineConfig> = {}): Promise
|
|||||||
}
|
}
|
||||||
|
|
||||||
progressHelpers.scoringComplete(scoredJobs.length);
|
progressHelpers.scoringComplete(scoredJobs.length);
|
||||||
console.log(`\n📊 Scored ${scoredJobs.length} jobs. Ready for manual processing.`);
|
console.log(`\n📊 Scored ${scoredJobs.length} jobs.`);
|
||||||
|
|
||||||
|
// Step 5: Auto-process top jobs
|
||||||
|
console.log('\n🏭 Auto-processing top jobs...');
|
||||||
|
|
||||||
|
const jobsToProcess = scoredJobs
|
||||||
|
.filter(j => (j.suitabilityScore ?? 0) >= mergedConfig.minSuitabilityScore)
|
||||||
|
.sort((a, b) => (b.suitabilityScore ?? 0) - (a.suitabilityScore ?? 0))
|
||||||
|
.slice(0, mergedConfig.topN);
|
||||||
|
|
||||||
|
console.log(` Found ${jobsToProcess.length} candidates (score >= ${mergedConfig.minSuitabilityScore}, top ${mergedConfig.topN})`);
|
||||||
|
|
||||||
|
let processedCount = 0;
|
||||||
|
|
||||||
|
if (jobsToProcess.length > 0) {
|
||||||
|
updateProgress({
|
||||||
|
step: 'processing',
|
||||||
|
jobsProcessed: 0,
|
||||||
|
totalToProcess: jobsToProcess.length,
|
||||||
|
});
|
||||||
|
|
||||||
|
for (let i = 0; i < jobsToProcess.length; i++) {
|
||||||
|
const job = jobsToProcess[i];
|
||||||
|
progressHelpers.processingJob(i + 1, jobsToProcess.length, job);
|
||||||
|
|
||||||
|
// Process job (Generate Summary + PDF)
|
||||||
|
// We catch errors here to ensure one failure doesn't stop the whole batch
|
||||||
|
const result = await processJob(job.id);
|
||||||
|
|
||||||
|
if (result.success) {
|
||||||
|
processedCount++;
|
||||||
|
} else {
|
||||||
|
console.warn(` ⚠️ Failed to process job ${job.id}: ${result.error}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
progressHelpers.jobComplete(i + 1, jobsToProcess.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Update pipeline run as completed
|
// Update pipeline run as completed
|
||||||
await pipelineRepo.updatePipelineRun(pipelineRun.id, {
|
await pipelineRepo.updatePipelineRun(pipelineRun.id, {
|
||||||
status: 'completed',
|
status: 'completed',
|
||||||
completedAt: new Date().toISOString(),
|
completedAt: new Date().toISOString(),
|
||||||
jobsProcessed: 0,
|
jobsProcessed: processedCount,
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('\n🎉 Pipeline completed!');
|
console.log('\n🎉 Pipeline completed!');
|
||||||
console.log(` Jobs discovered: ${created}`);
|
console.log(` Jobs discovered: ${created}`);
|
||||||
console.log(' Jobs processed: 0 (manual)');
|
console.log(` Jobs processed: ${processedCount}`);
|
||||||
|
|
||||||
progressHelpers.complete(created, 0);
|
progressHelpers.complete(created, processedCount);
|
||||||
|
|
||||||
await notifyPipelineWebhook('pipeline.completed', {
|
await notifyPipelineWebhook('pipeline.completed', {
|
||||||
pipelineRunId: pipelineRun.id,
|
pipelineRunId: pipelineRun.id,
|
||||||
jobsDiscovered: created,
|
jobsDiscovered: created,
|
||||||
jobsScored: unprocessedJobs.length,
|
jobsScored: unprocessedJobs.length,
|
||||||
jobsProcessed: 0,
|
jobsProcessed: processedCount,
|
||||||
})
|
})
|
||||||
isPipelineRunning = false;
|
isPipelineRunning = false;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
jobsDiscovered: created,
|
jobsDiscovered: created,
|
||||||
jobsProcessed: 0,
|
jobsProcessed: processedCount,
|
||||||
};
|
};
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user