aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-11-02 18:04:20 +0000
committerMohamed Bassem <me@mbassem.com>2025-11-02 19:32:34 +0000
commit965c603de3b834f71ec7a99e60ddc3d9532e860c (patch)
tree0f9216346a3b09909286d1ced7217b97161278cf /packages
parent33f407797213c56dd2f13e98228a5305efdf90fd (diff)
downloadkarakeep-965c603de3b834f71ec7a99e60ddc3d9532e860c.tar.zst
feat: Make search job timeout configurable
Diffstat (limited to 'packages')
-rw-r--r--packages/plugins-search-meilisearch/src/index.ts2
-rw-r--r--packages/shared/config.ts2
2 files changed, 4 insertions, 0 deletions
diff --git a/packages/plugins-search-meilisearch/src/index.ts b/packages/plugins-search-meilisearch/src/index.ts
index 77d5a57e..30da4a64 100644
--- a/packages/plugins-search-meilisearch/src/index.ts
+++ b/packages/plugins-search-meilisearch/src/index.ts
@@ -8,6 +8,7 @@ import type {
SearchOptions,
SearchResponse,
} from "@karakeep/shared/search";
+import serverConfig from "@karakeep/shared/config";
import { PluginProvider } from "@karakeep/shared/plugins";
import { envConfig } from "./env";
@@ -68,6 +69,7 @@ class MeiliSearchIndexClient implements SearchIndexClient {
private async ensureTaskSuccess(taskUid: number): Promise<void> {
const task = await this.index.waitForTask(taskUid, {
intervalMs: 200,
+ timeOutMs: serverConfig.search.jobTimeoutSec * 1000 * 0.9,
});
if (task.error) {
throw new Error(`Search task failed: ${task.error.message}`);
diff --git a/packages/shared/config.ts b/packages/shared/config.ts
index 51b591ad..a62f0fb6 100644
--- a/packages/shared/config.ts
+++ b/packages/shared/config.ts
@@ -88,6 +88,7 @@ const allEnv = z.object({
CRAWLER_NUM_WORKERS: z.coerce.number().default(1),
INFERENCE_NUM_WORKERS: z.coerce.number().default(1),
SEARCH_NUM_WORKERS: z.coerce.number().default(1),
+ SEARCH_JOB_TIMEOUT_SEC: z.coerce.number().default(30),
WEBHOOK_NUM_WORKERS: z.coerce.number().default(1),
ASSET_PREPROCESSING_NUM_WORKERS: z.coerce.number().default(1),
RULE_ENGINE_NUM_WORKERS: z.coerce.number().default(1),
@@ -306,6 +307,7 @@ const serverConfigSchema = allEnv.transform((val, ctx) => {
},
search: {
numWorkers: val.SEARCH_NUM_WORKERS,
+ jobTimeoutSec: val.SEARCH_JOB_TIMEOUT_SEC,
},
logLevel: val.LOG_LEVEL,
logNoColor: val.NO_COLOR,