From e724bbd465f366e23eb6095c546a8174bb5afcca Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 30 Jan 2024 12:27:45 +0800 Subject: [PATCH] fallback to worker redis client if fetched content not found in cache --- packages/api/src/jobs/save_page.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/api/src/jobs/save_page.ts b/packages/api/src/jobs/save_page.ts index 1f2d276e4..1879dbe0b 100644 --- a/packages/api/src/jobs/save_page.ts +++ b/packages/api/src/jobs/save_page.ts @@ -139,13 +139,18 @@ const sendImportStatusUpdate = async ( const getCachedFetchResult = async (url: string) => { const key = `fetch-result:${url}` - if (!redisDataSource.redisClient) { + if (!redisDataSource.redisClient || !redisDataSource.workerRedisClient) { throw new Error('redis client is not initialized') } - const result = await redisDataSource.redisClient.get(key) + let result = await redisDataSource.redisClient.get(key) if (!result) { - throw new Error('fetch result is not cached') + logger.debug(`fetch result is not cached in cache redis ${url}`) + // fallback to worker redis client if the result is not found + result = await redisDataSource.workerRedisClient.get(key) + if (!result) { + throw new Error('fetch result is not cached') + } } const fetchResult = JSON.parse(result) as unknown