Tengo una función asíncrona que almacenará en caché el resultado de un costoso escaneo de puertos para cámaras RTSP. Varios trabajadores creados con setInterval podrían estar llamando a esta función al mismo tiempo. Me pregunto si todos los trabajadores esperarán hasta que se resuelva la primera promesa y luego obtendrán el resultado en caché o cada trabajador iniciará otro análisis.
/** * Get either the cached rstp scan or perform a new one. * @param port: port number being scanned */ export const getRtspCached = async (port: number): Promise<RstpAddr[]> => { const key = port.toString() const cached = await rtspCache.getItem<RstpAddr[]>(key) if (cached) { return cached } return getRtspForceScan(port) }