From 1c837588b89c37805d48e65480d480d30dcf5cde Mon Sep 17 00:00:00 2001 From: Vasilica Olariu Date: Wed, 22 Oct 2025 17:27:56 +0300 Subject: [PATCH] HOTFIX timeout fixes --- src/api/repository/winnings.repo.ts | 39 ++++++++++++++--------------- src/shared/global/prisma.service.ts | 7 ++++-- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/src/api/repository/winnings.repo.ts b/src/api/repository/winnings.repo.ts index 3f5c303..2095d02 100644 --- a/src/api/repository/winnings.repo.ts +++ b/src/api/repository/winnings.repo.ts @@ -180,28 +180,27 @@ export class WinningsRepository { !winnerIds && !!externalIds?.length, ); - const [winnings, count] = await this.prisma.$transaction([ - this.prisma.winnings.findMany({ - where: queryWhere, - include: { - payment: { - where: { - installment_number: 1, - }, - orderBy: [ - { - created_at: 'desc', - }, - ], + const winnings = await this.prisma.winnings.findMany({ + where: queryWhere, + include: { + payment: { + where: { + installment_number: 1, }, - origin: true, + orderBy: [ + { + created_at: 'desc', + }, + ], }, - orderBy, - skip: searchProps.offset, - take: searchProps.limit, - }), - this.prisma.winnings.count({ where: queryWhere }), - ]); + origin: true, + }, + orderBy, + skip: searchProps.offset, + take: searchProps.limit, + }); + + const count = await this.prisma.winnings.count({ where: queryWhere }); const usersPayoutStatusMap = winnings?.length ? await this.getUsersPayoutStatusForWinnings(winnings) diff --git a/src/shared/global/prisma.service.ts b/src/shared/global/prisma.service.ts index b6e741b..5f61f5a 100644 --- a/src/shared/global/prisma.service.ts +++ b/src/shared/global/prisma.service.ts @@ -14,6 +14,9 @@ export class PrismaService constructor() { super({ + transactionOptions: { + timeout: 20000, // 20s + }, log: [ { level: 'query', emit: 'event' }, { level: 'info', emit: 'event' }, @@ -26,8 +29,8 @@ export class PrismaService this.$on('query' as never, (e: Prisma.QueryEvent) => { const queryTime = e.duration; - // log slow queries (> 500ms) - if (queryTime > 500) { + // log slow queries (> 5s) + if (queryTime > 5000) { this.logger.warn( `Slow query detected! Duration: ${queryTime}ms | Query: ${e.query}`, );