Объясните, пожалуйста, почему DB Connections в RDS всегда 0. Провожу операции с базой (GET, POST) - всегда пишет 0, хотя создается соединение с базой, операция проходит и потом происходит connection.close() (И 10 минут к коннекту еще можно присоединится, а после при еще одной операции будет открыто новое)
Если зайду в pgadmin, то через некоторое время будет показано несколько DB Connections (2-4).
Разве каждый запрос в бд не должен порождать коннект, который будет отображаться в мониторинге? Или я не совсем понимаю как эти коннекты работают?
Примеры кода:
DB connectionexport class DB {
private connectionManager: ConnectionManager;
constructor() {
this.connectionManager = getConnectionManager();
}
public async getConnection(): Promise<Connection> {
const CONNECTION_NAME = `default`;
let connection: Connection;
if (this.connectionManager.has(CONNECTION_NAME)) {
connection = this.connectionManager.get(CONNECTION_NAME);
if (!connection.isConnected) {
connection = await connection.connect();
}
} else {
connection = await createConnection(options);
}
return connection;
}
}
Пример сервисаclass ItemService {
private db: DB;
constructor() {
this.db = new DB();
}
async getItems(): Promise<Item[]> {
const connection = await this.db.getConnection();
try {
return await connection
.getRepository(ItemEntity)
.find();
} finally {
await connection.close();
}
}
}
export const itemService = new ItemService()
Лямбдаexport const getItems = async (_event) => {
try {
const items = await itemsService.getItems();
return sendResponse( { items }, 200 );
} catch (error) {
return sendError(error);
}
};