set min messages count per file

Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
This commit is contained in:
Kristina Fefelova 2025-05-21 20:41:46 +04:00
parent ce833c0e4a
commit abdb6126c5
No known key found for this signature in database
GPG Key ID: 750D35EF042F0690
2 changed files with 12 additions and 2 deletions

View File

@ -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'

View File

@ -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)