fix(api): prevent startup failure from meilisearch outage
This commit is contained in:
@@ -90,10 +90,17 @@ export function createInitializer(config: APIConfig, logger: ILogger): () => Pro
|
||||
}
|
||||
|
||||
logger.info({search_url: config.search.url}, 'Initializing search...');
|
||||
let searchInitialized = false;
|
||||
try {
|
||||
await initializeSearch();
|
||||
searchInitialized = true;
|
||||
logger.info('Search initialized');
|
||||
} catch (error) {
|
||||
logger.warn({error}, 'Search initialisation failed; continuing startup without search');
|
||||
}
|
||||
|
||||
// All API replicas share the same Meilisearch cluster, so only one should warm it.
|
||||
if (searchInitialized) {
|
||||
const warmupLockKey = 'fluxer:search:warmup:admin';
|
||||
const warmupLockToken = randomUUID();
|
||||
const warmupLockTtlSeconds = 60 * 60;
|
||||
@@ -118,6 +125,7 @@ export function createInitializer(config: APIConfig, logger: ILogger): () => Pro
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (config.voice.enabled && config.voice.defaultRegion) {
|
||||
const voiceDataInitializer = new VoiceDataInitializer();
|
||||
|
||||
Reference in New Issue
Block a user