fix: incorrect SQL in scheduleSnapshot

This commit is contained in:
alikia2x (寒寒) 2025-04-15 22:00:02 +08:00
parent 907c0a6976
commit 288e4f9571
Signed by: alikia2x
GPG Key ID: 56209E0CCD8420C6
2 changed files with 17 additions and 3 deletions

View File

@ -184,7 +184,7 @@ export async function scheduleSnapshot(
let adjustedTime = new Date(targetTime);
if (type == "milestone") {
await client.queryObject(
`UPDATE snapshot_schedule SET started_at = $1 WHERE aid = $2 AND type = 'milestone'`,
`UPDATE snapshot_schedule SET started_at = $1 WHERE aid = $2 AND type = 'milestone' AND status = 'pending'`,
[adjustedTime, aid],
);
logger.log(

View File

@ -6,6 +6,20 @@ import { HOUR, MINUTE } from "@std/datetime";
const log = (value: number, base: number = 10) => Math.log(value) / Math.log(base);
const getFactor = (x: number) => {
const a = 1.054;
const b = 4.5;
const c = 100;
const u = 0.601;
const g = 455;
if (x>g) {
return log(b/log(x+1),a);
}
else {
return log(b/log(x+c),a)+u;
}
}
/*
* Returns the minimum ETA in hours for the next snapshot
* @param client - Postgres client
@ -35,8 +49,8 @@ export const getAdjustedShortTermETA = async (client: Client, aid: number) => {
const target = closetMilestone(latestSnapshot.views);
const viewsToIncrease = target - latestSnapshot.views;
const eta = viewsToIncrease / (speed + DELTA);
let factor = log(2.97 / log(viewsToIncrease + 1), 1.14);
factor = truncate(factor, 3, 100);
let factor = getFactor(viewsToIncrease);
factor = truncate(factor, 4.5, 100);
const adjustedETA = eta / factor;
if (adjustedETA < minETAHours) {
minETAHours = adjustedETA;