let fetching gdt sum running parallel

This commit is contained in:
einhornimmond 2024-06-19 11:46:22 +02:00
parent 7f97ff6cf8
commit d64ceedd04
3 changed files with 14 additions and 4 deletions

View File

@ -29,13 +29,15 @@ export class BalanceResolver {
logger.addContext('user', user.id)
logger.info(`balance(userId=${user.id})...`)
const gdtResolver = new GdtResolver()
const balanceGDT = await gdtResolver.gdtBalance(context)
if(!context.balanceGDT) {
const gdtResolver = new GdtResolver()
context.balanceGDT = await gdtResolver.gdtBalance(context)
}
logger.info(`time for load gdt balance: ${new Date().getTime() - now.getTime()} ms`)
let profilingTime = new Date()
logger.debug(`balanceGDT=${balanceGDT}`)
logger.debug(`balanceGDT=${context.balanceGDT}`)
const lastTransaction = context.lastTransaction
? context.lastTransaction
@ -55,7 +57,7 @@ export class BalanceResolver {
logger.info(`no balance found, return Default-Balance!`)
return new Balance({
balance: new Decimal(0),
balanceGDT,
balanceGDT: context.balanceGDT,
count: 0,
linkCount: 0,
})

View File

@ -49,6 +49,7 @@ import {
import { sendTransactionsToDltConnector } from './util/sendTransactionsToDltConnector'
import { storeForeignUser } from './util/storeForeignUser'
import { transactionLinkSummary } from './util/transactionLinkSummary'
import { GdtResolver } from './GdtResolver'
export const executeTransaction = async (
amount: Decimal,
@ -229,6 +230,9 @@ export class TransactionResolver {
logger.addContext('user', user.id)
logger.info(`transactionList(user=${user.firstName}.${user.lastName}, ${user.emailId})`)
const gdtResolver = new GdtResolver()
const balanceGDTPromise = gdtResolver.gdtBalance(context)
// find current balance
const lastTransaction = await getLastTransaction(user.id)
logger.debug(`lastTransaction=${lastTransaction}`)
@ -442,6 +446,9 @@ export class TransactionResolver {
} ms`,
)
profilingTime = new Date()
const balanceGDT = await balanceGDTPromise
context.balanceGDT = balanceGDT
// Construct Result
return new TransactionList(await balanceResolver.balance(context), transactions)
}

View File

@ -16,6 +16,7 @@ export interface Context {
gradidoID?: string
// hack to use less DB calls for Balance Resolver
lastTransaction?: dbTransaction | null
balanceGDT?: number | null
transactionCount?: number
linkCount?: number
sumHoldAvailableAmount?: Decimal