配置Apollo GraphQL挂起请求

时间:2016-11-02 18:46:31

标签: graphql apollo react-apollo

我想在graphQL请求上设置一个任意计时器。比如说,我发出请求,Apollo发送错误的时间超过10秒。

思想?

我是否需要使用Apollo客户端和Apollo服务器(比如数据库等其他服务请求)?

1 个答案:

答案 0 :(得分:2)

有三个不同的地方超时可能有意义:

<强> 1。用于连接服务器

要使发送到服务器的请求超时,您可以在网络接口周围构建一个包装器,这将在x秒后拒绝查询承诺。

<强> 2。对于GraphQL服务器上的查询解析

要在服务器上实现每个查询超时,您可以在查询开始时将查询开始时间放在上下文中,并使用从解析程序返回promise的函数包装每个resolve函数,或者拒绝超时时间结束。

第3。用于GraphQL服务器与后端之间的连接

要实现对后端请求的超时,您可以在一段时间后让后端的获取请求超时。

PS:值得注意的是,上述解决方案会导致查询或请求超时,但它们不会取消它们,这意味着您的服务器或后端很可能会继续执行现在浪费的工作。但是,取消是一个完全不同的问题,而且也很难解决。