Функция логгера, вызываемая несколькими потоками (виртуальными пользователями). Я хочу выполнять функции printDebugLogs (debugLogsRepo) и printResponseCodeRepo (responseCodeRepo) только по истечении заданной продолжительности, т.е. когда IsElapsedTime вернет true. В настоящее время все потоки выполняют эту функцию много раз.
// Функция логгера, выполняемая многопоточностью
var debugLogsRepo = []
var responseCodeRepo=new Map();
var duration;
var startTime=new Date().getSeconds();
export function Logger(url, request, response, reqFrom, conf) {
//If logging enable
if (conf.logging) {
//ClienSide logging enable
if (conf.clientSideLog) {
//If request failed
pushFailedRequest(url, request, response, reqFrom, debugLogsRepo);
}
//Insert all response codes(i.e pass and failed)
pushResponseCodeStats(response, responseCodeRepo)
//Condition based on which flush logs
if ((IsTimeElapsed(conf))) {
printDebugLogs(debugLogsRepo);
printResponseCodeRepo(responseCodeRepo)
}
}
}
//If duration has been passed
export function IsTimeElapsed(conf) {
var duration = conf.logInterval;
var currentTime = new Date().getSeconds();
if ((Number(startTime) + Number(duration)) <= currentTime) {
startTime = new Date().getSeconds();
return true
}
return false;
}