renewCodebases

tcmts.registry.renewCodebases · #l2gj6yj7 · term · runs on the server

uses tcmts.registry.codebases, which uses tcmts.server.table, which uses tcmts.server.Table, which uses #tcm/host (database)

Queue mirroring again for the listed codebases whose servers weren't asked in the last CODEBASE_EVERY_MS (most at a time): how many.

import { CODEBASE_EVERY_MS, codebases, mirrorCodebase } from "#codebase/tcmts/registry";
import { enqueue } from "#codebase/tcmts/server";

export async function renewCodebases(most = 20): Promise<number> {
  const due = (await codebases.find({ state: "verified" }))
    .filter((c) => !c.value.triedAt || Date.now() - c.value.triedAt.getTime() > CODEBASE_EVERY_MS)
    .slice(0, most);
  for (const c of due) enqueue(mirrorCodebase, c.value.uri);
  return due.length;
}

uses

used by