Skip to content

Commit cb53b2b

Browse files
committed
patch for delay race condition
1 parent 7296b76 commit cb53b2b

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

apps/api/src/controllers/v1/crawl-status.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import { configDotenv } from "dotenv";
2222
import type { Job, JobState, Queue } from "bullmq";
2323
import { logger } from "../../lib/logger";
2424
import { supabase_rr_service, supabase_service } from "../../services/supabase";
25-
import { getConcurrencyLimitedJobs } from "../../lib/concurrency-limit";
25+
import { getConcurrencyLimitedJobs, getCrawlConcurrencyLimitActiveJobs } from "../../lib/concurrency-limit";
2626
import { getJobFromGCS } from "../../lib/gcs-jobs";
2727
configDotenv();
2828

@@ -163,6 +163,7 @@ export async function crawlStatusController(
163163
);
164164

165165
const throttledJobsSet = new Set(await getConcurrencyLimitedJobs(req.auth.team_id));
166+
const activeJobsSet = new Set(await getCrawlConcurrencyLimitActiveJobs(req.params.jobId));
166167

167168
const validJobStatuses: [string, JobState | "unknown"][] = [];
168169
const validJobIDs: string[] = [];
@@ -171,6 +172,9 @@ export async function crawlStatusController(
171172
if (throttledJobsSet.has(id)) {
172173
validJobStatuses.push([id, "prioritized"]);
173174
validJobIDs.push(id);
175+
} else if (status === "unknown" && activeJobsSet.has(id)) {
176+
validJobStatuses.push([id, "active"]);
177+
validJobIDs.push(id);
174178
} else if (
175179
status !== "failed" &&
176180
status !== "unknown"

apps/api/src/lib/concurrency-limit.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,7 @@ async function getNextConcurrentJob(teamId: string): Promise<{
216216
}
217217

218218
for (const ignoredJob of ignoredJobs) {
219-
const timeout = ignoredJob.timeout - Date.now();
220-
await pushConcurrencyLimitedJob(teamId, ignoredJob.job, timeout);
219+
await pushConcurrencyLimitedJob(teamId, ignoredJob.job, ignoredJob.timeout);
221220
}
222221

223222
return finalJob;

0 commit comments

Comments
 (0)