deno.land / x / replicache@v10.0.0-beta.0 / persist / bg-interval.ts
1234567891011121314151617181920212223242526272829303132333435import type {LogContext} from '@rocicorp/logger';
export function initBgIntervalProcess( processName: string, process: () => Promise<unknown>, intervalMs: number, lc: LogContext, signal: AbortSignal,): void { if (signal.aborted) { return; }
lc = lc.addContext('bgIntervalProcess', processName); const intervalID = setInterval(async () => { lc.debug?.('Running'); try { await process(); } catch (e) { if (signal.aborted) { lc.debug?.('Error running most likely due to close.', e); } else { lc.error?.('Error running.', e); } } }, intervalMs); lc = lc.addContext('intervalID', intervalID); lc.debug?.('Starting');
signal.addEventListener('abort', () => { lc.debug?.('Stopping'); clearInterval(intervalID); });}
Version Info