Perform verification smoothly over time window

GitOrigin-RevId: b00c18a61a5473f3b7353fd5ab1e55f191722ecd
This commit is contained in:
Andrew Rumble
2025-03-19 12:07:08 +00:00
committed by Copybot
parent d66ff5c417
commit b8a5830ab4

View File

@@ -72,9 +72,14 @@ function splitJobs(startDate, endDate, interval) {
*
* @param {AsyncGenerator<string>} historyIdCursor
* @param {EventEmitter} [eventEmitter]
* @param {number} [delay] - Allows a delay between each verification
* @return {Promise<{verified: number, total: number, errorTypes: *[], hasFailure: boolean}>}
*/
async function verifyProjectsFromCursor(historyIdCursor, eventEmitter) {
async function verifyProjectsFromCursor(
historyIdCursor,
eventEmitter,
delay = 0
) {
const errorTypes = []
let verified = 0
let total = 0
@@ -99,6 +104,9 @@ async function verifyProjectsFromCursor(historyIdCursor, eventEmitter) {
const errorType = handleVerificationError(error, historyId)
errorTypes.push(errorType)
}
if (delay > 0) {
await setTimeout(delay)
}
}
return {
verified,
@@ -112,11 +120,16 @@ async function verifyProjectsFromCursor(historyIdCursor, eventEmitter) {
*
* @param {number} nProjectsToSample
* @param {EventEmitter} [signal]
* @param {number} [delay]
* @return {Promise<VerificationJobStatus>}
*/
export async function verifyRandomProjectSample(nProjectsToSample, signal) {
export async function verifyRandomProjectSample(
nProjectsToSample,
signal,
delay = 0
) {
const historyIds = await getSampleProjectsCursor(nProjectsToSample)
return await verifyProjectsFromCursor(historyIds, signal)
return await verifyProjectsFromCursor(historyIds, signal, delay)
}
/**
@@ -292,13 +305,11 @@ export function loopRandomProjects(signal) {
async function loop() {
do {
try {
const result = await verifyRandomProjectSample(100, signal)
const result = await verifyRandomProjectSample(100, signal, 2_000)
logger.debug({ result }, 'verified random project sample')
} catch (error) {
logger.error({ error }, 'error verifying random project sample')
}
await setTimeout(300_000)
// eslint-disable-next-line no-unmodified-loop-condition
} while (!shutdown)
}