From abdb6126c5bf17e04d760ef3c60b254096f8bab6 Mon Sep 17 00:00:00 2001 From: Kristina Fefelova Date: Wed, 21 May 2025 20:41:46 +0400 Subject: [PATCH] set min messages count per file Signed-off-by: Kristina Fefelova --- services/msg2file/src/config.ts | 2 ++ services/msg2file/src/worker.ts | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/services/msg2file/src/config.ts b/services/msg2file/src/config.ts index 63dedc8edd..60cc7471d5 100644 --- a/services/msg2file/src/config.ts +++ b/services/msg2file/src/config.ts @@ -17,6 +17,7 @@ interface Config { AccountsURL: string DbUrl: string MaxSyncAttempts: number + MinSyncMessagesCount: number MessagesPerFile: number Port: number Secret: string @@ -31,6 +32,7 @@ const config: Config = (() => { DbUrl: process.env.DB_URL, MaxSyncAttempts: parseNumber(process.env.MAX_SYNC_ATTEMPTS) ?? 3, MessagesPerFile: parseNumber(process.env.MESSAGES_PER_FILE) ?? 500, + MinSyncMessagesCount: parseNumber(process.env.MIN_SYNC_MESSAGES_COUNT) ?? 30, Port: parseNumber(process.env.PORT), Secret: process.env.SECRET ?? 'secret', ServiceID: process.env.SERVICE_ID ?? 'msg2file-service' diff --git a/services/msg2file/src/worker.ts b/services/msg2file/src/worker.ts index 520d52d8de..fc104e494a 100644 --- a/services/msg2file/src/worker.ts +++ b/services/msg2file/src/worker.ts @@ -175,7 +175,7 @@ async function applyPatchesToGroup ( const file = await getFile(storage, ctx, workspace, group.blobId) const parsedFile = await parseFileStream(file) const patchesByMessage = groupByArray(group.patches, (it) => it.message) - const updatedMessages: Message[] = parsedFile.messages.map((message) => { + const updatedMessages = parsedFile.messages.map((message) => { const patches = patchesByMessage.get(message.id) ?? [] if (patches.length === 0) { return message @@ -183,7 +183,7 @@ async function applyPatchesToGroup ( return applyPatches(message, patches) } }) - const blob = await uploadGroupFile(ctx, storage, workspace, parsedFile.metadata, updatedMessages) + const blob = await uploadGroupFile(ctx, storage, workspace, parsedFile.metadata, updatedMessages.map(deserializeMessage)) await createGroup( client, group.card, @@ -253,6 +253,14 @@ async function newMessages2file ( messagesFromExistingGroup.length > 0 ? messages.slice(messagesFromExistingGroup.length) : messages await pushMessagesToExistingGroup(client, card, messagesFromExistingGroup, ctx, storage, workspace) + + if (messages.length < config.MinSyncMessagesCount) { + const ids = [...messagesFromExistingGroup].map((it) => it.id) + await removeMessages(db, workspace, card._id, [...ids]) + await removePatches(db, workspace, card._id, [...ids]) + break + } + const savedMessages = await createNewGroup(client, card, newMessages, ctx, storage, workspace) const ids = [...messagesFromExistingGroup, ...savedMessages].map((it) => it.id)