mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-18 21:45:31 +09:00
fix(worker): park far-future jobs in a KV due queue (#2144)
This commit is contained in:
1 parent
6eca64a8f7
commit
efae78056e
10 files changed
+551
-21
No files matched your search
@@ -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,
|
||||
};
|
||||
Reference in new issue
Block a user