Optimisation des requetes vers gametracker (un fichier de config est désormais nécessaire)

This commit is contained in:
2020-11-25 21:49:25 +01:00
parent 038816ce50
commit 36a2e1e071
3 changed files with 82 additions and 3 deletions

View File

@@ -14,7 +14,7 @@ export default {
};
},
setMetrics(response) {
const rank = response.rank || 0;
const rank = response ? response.rank : 0;
metrics.gametrackerRank.set((Number(rank)));
},
};

View File

@@ -4,6 +4,31 @@ import sourcepython from './sourcepython.js';
import registry from './registry.js';
import game from './game.js';
import gametracker from './gametracker.js';
import conf from '../config.js';
const gameTrackerResponse = [];
function requestGameTrackerSchedule() {
setTimeout(() => {
conf.servers.forEach((server) => {
requestGameTracker(server.ip, server.port);
});
requestGameTrackerSchedule();
}, conf.gametrackerShedule * 1000);
}
async function requestGameTracker(ip, port) {
try {
gameTrackerResponse[`${ip}:${port}`] = await gametracker.request(ip, port);
} catch (e) {
console.log(e);
}
}
requestGameTrackerSchedule();
conf.servers.forEach((server) => {
requestGameTracker(server.ip, server.port);
});
export default {
async request(config, client) {
@@ -14,7 +39,6 @@ export default {
const infoResponse = await game.requeseInfo(client, config.game);
const statsResponse = await game.requestStats(client, config.game);
const statusResponse = await game.requestStatus(client, config.game);
const gameTrackerResponse = await gametracker.request(config.ip, config.port);
if (config.metamod) {
metamodResponse = await metamod.request(client);
}
@@ -31,7 +55,7 @@ export default {
metamod: metamodResponse,
sourcemod: sourcemodResponse,
sourcepython: sourcepythonResponse,
gametracker: gameTrackerResponse,
gametracker: gameTrackerResponse[`${config.ip}:${config.port}`],
};
},