I tried the above suggestion to make multiple requests to a remote third party API to solve the " Socket hangout issue, ECONNRESET in Express.js (Node.js) with multiple requests: but still getting the error. I will appreciate your help. Thanks
This is the code I use to simulate the bulk operation
export async function bulkParserSimulator(arrayOfIds) {
// Fetch CV urls
// logg.info('Fetching uploaded resume arrays')
let cvUrl = await getUploadedCVUrl(arrayOfIds);
let parsedResult = [];
let save;
let start = +new Date();
let parserError;
// sequential operation
for (let index = 0, len = cvUrl.length; index < len; index++) {
const file = cvUrl[index].fileurl;
const filename = cvUrl[index].filename;
const jobpositionIdFromArray = cvUrl[index].jobPositionId;
// Check if cvUrl exist else go to next loop
if (!file && !filename) continue;
let singleResult = await throttleApiCall(filename, file);
console.log({ singleResult });
const { data } = singleResult;
if (data.Error) {
parserError = true;
}
if (data.Results) {
let newparsed = new ParsersCollection(data);
newparsed.jobPositionId = jobpositionIdFromArray;
save = await newparsed.save();
parsedResult.push(save);
let end = +new Date();
console.log({ TimeToFinish: end - start + 'ms' });
}
}
// You can return this result then
let final = { parsedResult, parserError };
logger.info('Returning the parsed results');
return final;
}
Then this is the one for bottleneck
import Bottleneck from 'bottleneck';
import { initializeParsingProcess } from './hire';
// Never more than 1 requests running at a time.
// Wait at least 1000ms between each request.
const limiter = new Bottleneck({
maxConcurrent: 1, // one request per second
minTime: 333,
});
export const throttleApiCall = limiter.wrap(initializeParsingProcess);
I will get the error below when I call direct. I use bottleneck to see whether that can be solved after going your amazing post here but still getting the same error below
Error: socket hang up
at createHangUpError (_http_client.js:323:15)
at TLSSocket.socketOnEnd (_http_client.js:426:23)
at TLSSocket.emit (events.js:194:15)
at TLSSocket.EventEmitter.emit (domain.js:441:20)
at endReadableNT (_stream_readable.js:1125:12)
at process._tickCallback (internal/process/next_tick.js:63:19)
code: 'ECONNRESET',
I tried the above suggestion to make multiple requests to a remote third party API to solve the " Socket hangout issue, ECONNRESET in Express.js (Node.js) with multiple requests: but still getting the error. I will appreciate your help. Thanks
That means the other end of the connection closed it for some reason. Can you share your code?
This is the code I use to simulate the bulk operation
Then this is the one for bottleneck
How you're wrapping the function looks fine. If you call initializeParsingProcess() directly, what happens?
I will get the error below when I call direct. I use bottleneck to see whether that can be solved after going your amazing post here but still getting the same error below
Ah, I see, I thought you were suggesting the problem was with your usage of Bottleneck. Can you share the code that you use to call the API?
Great stuff, thanks for bringing
bottleneckto the broader audience.Been using it for quite a while now, it's amazing!