fix(extractor): avoid cache clash between context dependent extractors
This commit is contained in:
parent
ac6eccc58a
commit
287b031a12
1 changed files with 5 additions and 4 deletions
|
|
@ -21,10 +21,11 @@ export class ExtractorRegistry {
|
|||
}
|
||||
|
||||
const normalizedUrl = extractor.normalize(url);
|
||||
const cacheKey = `${extractor.id}_${normalizedUrl}`;
|
||||
|
||||
let urlResults = this.urlResultCache.get(normalizedUrl.href) ?? [];
|
||||
if (this.urlResultCache.has(normalizedUrl.href)) {
|
||||
return urlResults.map(urlResult => ({ ...urlResult, ttl: this.urlResultCache.getRemainingTTL(normalizedUrl.href) }));
|
||||
let urlResults = this.urlResultCache.get(cacheKey) ?? [];
|
||||
if (this.urlResultCache.has(cacheKey)) {
|
||||
return urlResults.map(urlResult => ({ ...urlResult, ttl: this.urlResultCache.getRemainingTTL(cacheKey) }));
|
||||
}
|
||||
|
||||
this.logger.info(`Extract stream URL using ${extractor.id} extractor from ${url}`, ctx);
|
||||
|
|
@ -32,7 +33,7 @@ export class ExtractorRegistry {
|
|||
urlResults = await extractor.extract(ctx, normalizedUrl, countryCode, title);
|
||||
|
||||
if (!urlResults.some(urlResult => urlResult.error) && extractor.ttl) {
|
||||
this.urlResultCache.set(normalizedUrl.href, urlResults, { ttl: extractor.ttl });
|
||||
this.urlResultCache.set(cacheKey, urlResults, { ttl: extractor.ttl });
|
||||
}
|
||||
|
||||
return urlResults;
|
||||
|
|
|
|||
Loading…
Reference in a new issue