2016-11-02 4 views
0

graphqlリクエストに任意のタイマーを設定したいと思います。さて、私はリクエストをして、アポロがエラーを返すのに10秒以上かかる。Apollo GraphQLでリクエストをハングするように設定する

思考?

私はApolloクライアントとApolloサーバーでこれを行う必要がありますか(たとえば、データベースなどの追加のサービス要求)?

答えて

2

タイムアウトは意味をなさない可能性がある三つの異なる場所があります。

1.サーバーに送信された要求のタイムアウトを持っているサーバー

への接続のために、あなたの周りのラッパーを構築することができx秒後に照会約束を拒否するネットワークインターフェース

GraphQLサーバー上のクエリ解像度2.

サーバー上のあたりのクエリタイムアウトを実装するには、クエリの開始、およびラップの文脈にクエリ開始時間を置くことができますそれぞれの解決関数は、リゾルバから約束を返すか、タイムアウトが経過したときに拒否するかのいずれかの関数を使って解決します。あなたのGraphQLサーバーとバックエンドへの要求のタイムアウトを実装するバックエンド

との間の接続のために

3.あなたは、単に一定の時間が経過するバックエンド時間にフェッチリクエストを行うことができます。

PS:上記の解決方法では、クエリや要求のタイムアウトが発生しますが、それらは取り消されません。つまり、サーバーやバックエンドは現在無駄になっている作業を続行する可能性が非常に高いです。しかし、取り消しはまったく別の問題であり、対処することも難しいです。

+1

詳細な応答をいただきありがとうございます。私が参考に見せることができる実用的な例はありますか?ありがとうございました! – Detuned

関連する問題