23 lines
744 B
TypeScript
23 lines
744 B
TypeScript
export function getAdaptiveImageQueueOwnerLimit(params: {
|
|
maxConcurrent: number;
|
|
hasCompetingOwner: boolean;
|
|
}) {
|
|
const maxConcurrent = Math.max(1, Math.floor(params.maxConcurrent || 1));
|
|
if (!params.hasCompetingOwner) {
|
|
return maxConcurrent;
|
|
}
|
|
|
|
return Math.max(1, Math.ceil(maxConcurrent / 2));
|
|
}
|
|
|
|
export function estimateImageDispatchWaitMs(params: {
|
|
queuePosition: number;
|
|
dispatchIntervalMs: number;
|
|
delayRemainingMs?: number;
|
|
}) {
|
|
const queuePosition = Math.max(0, Math.floor(params.queuePosition || 0));
|
|
const dispatchIntervalMs = Math.max(0, params.dispatchIntervalMs || 0);
|
|
const delayRemainingMs = Math.max(0, params.delayRemainingMs || 0);
|
|
return delayRemainingMs + queuePosition * dispatchIntervalMs;
|
|
}
|