fix(worker): park far-future jobs in a KV due queue (#2144)

This commit is contained in:
Hampus authored and GitHub committed 2026-08-30 22:16:18 +02:00
1 parent 6eca64a8f7
commit efae78056e
10 files changed
+551 -21

No files matched your search

+15 -1
View File
@@ -72,6 +72,7 @@ const LANE_CONFIG = {
'processInactivityDeletions',
'processPendingBulkMessageDeletions',
'processPremiumStateReconciliationQueue',
'processScheduledJobQueue',
'prunePostgresKvTtl',
'refreshSearchIndex',
'syncDiscoveryIndex',
@@ -213,6 +214,13 @@ function resolveWorkerLanes(config: WorkerLaneRuntimeConfig): Array<WorkerLaneDe
});
}
const SCHEDULED_JOB_DRAIN_INTERVALS_PER_ACK_WAIT = 2;
function resolveScheduledJobDrainIntervalSeconds(): number {
const minimumAckWaitMs = Math.min(...WORKER_LANES.map((lane) => lane.ackWaitMs));
return Math.max(1, Math.floor(minimumAckWaitMs / SCHEDULED_JOB_DRAIN_INTERVALS_PER_ACK_WAIT / 1000));
}
function resolveCronSchedulerEnabled(mode: APIWorkerMode, configuredValue: boolean | undefined): boolean {
if (configuredValue !== undefined) {
return configuredValue;
@@ -245,4 +253,10 @@ export function findLaneForTask(taskName: string): APIWorkerLaneName | null {
}
export type {WorkerLaneDefinition};
export {resolveCronSchedulerEnabled, resolveWorkerLanes, validateLaneCompleteness, WORKER_LANES};
export {
resolveCronSchedulerEnabled,
resolveScheduledJobDrainIntervalSeconds,
resolveWorkerLanes,
validateLaneCompleteness,
WORKER_LANES,
};