ваше сообщение коммита
This commit is contained in:
@@ -105,10 +105,10 @@ class DatabaseConnectionManager {
|
||||
user: config.db_user,
|
||||
password: config.db_password,
|
||||
ssl: false,
|
||||
max: 10,
|
||||
min: 0,
|
||||
idleTimeoutMillis: 30000,
|
||||
connectionTimeoutMillis: 2000,
|
||||
max: 100, // Увеличиваем максимальное количество клиентов (было 10)
|
||||
min: 10, // Минимальное количество клиентов для лучшей производительности (было 0)
|
||||
idleTimeoutMillis: 180000, // Увеличиваем до 180 сек (было 30)
|
||||
connectionTimeoutMillis: 180000, // Увеличиваем таймаут подключения до 180 сек (было 2)
|
||||
maxUses: 7500,
|
||||
allowExitOnIdle: true,
|
||||
maxLifetimeSeconds: 0
|
||||
|
||||
@@ -15,6 +15,12 @@ class DeployParamsService {
|
||||
database: process.env.DB_NAME || 'dapp_db',
|
||||
password: process.env.DB_PASSWORD || 'dapp_password',
|
||||
port: process.env.DB_PORT || 5432,
|
||||
max: 100, // Увеличиваем максимальное количество клиентов
|
||||
min: 10, // Минимальное количество клиентов
|
||||
idleTimeoutMillis: 180000, // Время жизни неактивного клиента (180 сек)
|
||||
connectionTimeoutMillis: 180000, // Таймаут подключения (180 сек)
|
||||
maxUses: 7500,
|
||||
allowExitOnIdle: true,
|
||||
});
|
||||
// Используем глобальный экземпляр encryptedDb
|
||||
}
|
||||
|
||||
@@ -25,11 +25,21 @@ async function getUserTokenBalances(address) {
|
||||
const encryptionUtils = require('../utils/encryptionUtils');
|
||||
const encryptionKey = encryptionUtils.getEncryptionKey();
|
||||
|
||||
// Получаем токены и RPC с расшифровкой
|
||||
const tokensResult = await db.getQuery()(
|
||||
'SELECT id, min_balance, readonly_threshold, editor_threshold, created_at, updated_at, decrypt_text(name_encrypted, $1) as name, decrypt_text(address_encrypted, $1) as address, decrypt_text(network_encrypted, $1) as network FROM auth_tokens',
|
||||
[encryptionKey]
|
||||
);
|
||||
// Получаем токены и RPC с расшифровкой (с таймаутом)
|
||||
let tokensResult;
|
||||
try {
|
||||
const queryPromise = db.getQuery()(
|
||||
'SELECT id, min_balance, readonly_threshold, editor_threshold, created_at, updated_at, decrypt_text(name_encrypted, $1) as name, decrypt_text(address_encrypted, $1) as address, decrypt_text(network_encrypted, $1) as network FROM auth_tokens',
|
||||
[encryptionKey]
|
||||
);
|
||||
const timeoutPromise = new Promise((_, reject) =>
|
||||
setTimeout(() => reject(new Error('Database query timeout')), 30000)
|
||||
);
|
||||
tokensResult = await Promise.race([queryPromise, timeoutPromise]);
|
||||
} catch (error) {
|
||||
logger.error('[tokenBalanceService] Ошибка получения токенов из БД:', error.message);
|
||||
return []; // Возвращаем пустой массив при ошибке БД
|
||||
}
|
||||
const tokens = tokensResult.rows;
|
||||
|
||||
// Убрано - используем rpcService вместо прямого запроса к БД
|
||||
|
||||
Reference in New Issue
Block a user