我试图使用Apollo Server等待流的结果。我的解析器如下所示。
async currentSubs() {
try {
const stream = gateway.subscription.search(search => {
search.status().is(braintree.Subscription.Status.Active);
});
const data = await stream.pipe(new CollectObjects()).collect();
return data;
} catch (e) {
console.log(e);
throw new Meteor.Error('issue', e.message);
}
},
这个解析器在返回的数据流很小的时候可以正常工作,但是当输入的数据变大时,会出现503(服务不可用)
的错误。看起来超时时间大约是30秒。我已经尝试通过graphQLServer.timeout = 240000;
增加我的Express服务器的超时时间,但没有任何改变。
我该如何排除故障并确定这个30秒的超时时间是从哪里引起的?它只在结果需要更长时间时才失败。
我正在使用https://github.com/mrdaniellewis/node-stream-collect来收集流中的结果。
try catch中出现的错误:
I20180128-13:09:26.872(-7)? { proxy:
I20180128-13:09:26.872(-7)? { error: 'Post http://127.0.0.1:26474/graphql: net/http: request canceled (Client.Timeout exceeded while awaiting headers)',
I20180128-13:09:26.872(-7)? level: 'error',
I20180128-13:09:26.873(-7)? msg: 'Error sending request to origin.',
I20180128-13:09:26.873(-7)? time: '2018-01-28T13:09:26-07:00',
I20180128-13:09:26.873(-7)? url: 'http://127.0.0.1:26474/graphql' } }