PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie füge ich ein Anfrage-Timeout in Typeorm/Typescript hinzu?

Um mit einer bestimmten Verbindung aus dem Pool zu arbeiten, verwenden Sie createQueryRunner Es gibt keine Informationen darüber in den Dokumenten, aber es ist in der api .

Anwendungsbeispiel:

const foo = <T>(callback: <T>(em: EntityManager) => Promise<T>): Promise<T> => {
    const connection = getConnection();
    const queryRunner = connection.createQueryRunner();

    return new Promise(async (resolve, reject) => {
        let res: T;
        try {
            await queryRunner.connect();
            // add logic for timeout
            res = await callback(queryRunner.manager);
        } catch (err) {
            reject(err);
        } finally {
            await queryRunner.release();
            resolve(res);
        }
    });
};