В настоящее время я использую пакет аналогичных вызовов на клиенте apollo graphql.Таким образом, он отправляет один вызов на apollo-server
, если тот же запрос graphql запущен, но с другими параметрами.
Но на стороне сервера graphql я хочу оптимизировать так, чтобы и один вызов выполнялся для одновременного разрешения всех запросов graphql.
Сервер Graphql выполняет вызов к серверу API, но для каждого отдельного пакетного вызова не разрешает все запросы сразу.
Я использовал data-loader
для использования пакетной обработки, но отправляет только один запрос.
genUserInfoDataLoader() {
return new DataLoader(async (arr) => {
logger.info(`---> UserInfoDataLoader Making calls for:${JSON.stringify(arr)}`);
const leagueId = arr[0].split(':')[1];
const UserIds = arr.map(a => a.split(':')[0]);
const userInfoMap = await this.post('endpoint/user-info ', {
userIds: UserIds.join(','),
tourId,
});
return UserIds
.map(
userId => (userInfoMap[userId] ? userInfoMap[userId] : [])
);
});
}