From 181c7e27fd26f873c0624c9787db3cb5f21b2004 Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Wed, 20 Nov 2024 17:37:49 +0100 Subject: [PATCH 1/2] use keep alive for connection to gdt server, for faster response and maybe less ressource usage --- backend/src/apis/HttpRequest.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/src/apis/HttpRequest.ts b/backend/src/apis/HttpRequest.ts index 27578463a..3cfeca89b 100644 --- a/backend/src/apis/HttpRequest.ts +++ b/backend/src/apis/HttpRequest.ts @@ -2,15 +2,21 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ +import { Agent } from 'http' +import { Agent as HttpsAgent } from 'https' + import axios from 'axios' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' +const httpAgent = new Agent({ keepAlive: true }) +const httpsAgent = new HttpsAgent({ keepAlive: true }) + export const apiPost = async (url: string, payload: unknown): Promise => { logger.trace('POST', url, payload) try { - const result = await axios.post(url, payload) + const result = await axios.post(url, payload, { httpAgent, httpsAgent }) logger.trace('POST-Response', result) if (result.status !== 200) { throw new LogError('HTTP Status Error', result.status) @@ -27,7 +33,7 @@ export const apiPost = async (url: string, payload: unknown): Promise => { export const apiGet = async (url: string): Promise => { logger.trace('GET: url=' + url) try { - const result = await axios.get(url) + const result = await axios.get(url, { httpAgent, httpsAgent }) logger.trace('GET-Response', result) if (result.status !== 200) { throw new LogError('HTTP Status Error', result.status) From 9a4dfa557f1d60a33f3a23f029445fe37144c3ea Mon Sep 17 00:00:00 2001 From: einhornimmond Date: Mon, 16 Dec 2024 20:02:46 +0100 Subject: [PATCH 2/2] update keep alive also for humhub and gms client --- backend/src/apis/ConnectionAgents.ts | 5 +++++ backend/src/apis/HttpRequest.ts | 6 +----- backend/src/apis/gms/GmsClient.ts | 10 +++++++--- backend/src/apis/humhub/HumHubClient.ts | 4 +++- 4 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 backend/src/apis/ConnectionAgents.ts diff --git a/backend/src/apis/ConnectionAgents.ts b/backend/src/apis/ConnectionAgents.ts new file mode 100644 index 000000000..8ce585242 --- /dev/null +++ b/backend/src/apis/ConnectionAgents.ts @@ -0,0 +1,5 @@ +import { Agent } from 'http' +import { Agent as HttpsAgent } from 'https' + +export const httpAgent = new Agent({ keepAlive: true }) +export const httpsAgent = new HttpsAgent({ keepAlive: true }) diff --git a/backend/src/apis/HttpRequest.ts b/backend/src/apis/HttpRequest.ts index 3cfeca89b..2c7b8b5a1 100644 --- a/backend/src/apis/HttpRequest.ts +++ b/backend/src/apis/HttpRequest.ts @@ -2,16 +2,12 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-unsafe-argument */ -import { Agent } from 'http' -import { Agent as HttpsAgent } from 'https' - import axios from 'axios' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' -const httpAgent = new Agent({ keepAlive: true }) -const httpsAgent = new HttpsAgent({ keepAlive: true }) +import { httpAgent, httpsAgent } from './ConnectionAgents' export const apiPost = async (url: string, payload: unknown): Promise => { logger.trace('POST', url, payload) diff --git a/backend/src/apis/gms/GmsClient.ts b/backend/src/apis/gms/GmsClient.ts index a59f7f6b5..9af018e1c 100644 --- a/backend/src/apis/gms/GmsClient.ts +++ b/backend/src/apis/gms/GmsClient.ts @@ -4,6 +4,7 @@ /* eslint-disable @typescript-eslint/no-unsafe-argument */ import axios from 'axios' +import { httpAgent, httpsAgent } from '@/apis/ConnectionAgents' import { CONFIG } from '@/config' import { LogError } from '@/server/LogError' import { backendLogger as logger } from '@/server/logger' @@ -126,9 +127,10 @@ export async function createGmsUser(apiKey: string, user: GmsUser): Promise