2016-11-02 4 views
0

graphQL 요청에 임의의 타이머를 설정하고 싶습니다. 말하자면, 요청을하고 Apollo가 오류를 다시 보내는 데 10 초 이상 걸립니다.Apollo GraphQL 요청 구성하기

생각하십니까?

Apollo 클라이언트와 Apollo 서버에서이 작업을 수행해야합니까 (예 : 데이터베이스 등의 추가 서비스 요청)?

답변

2

시간 제한을 이해 할 수있는 세 가지 다른 장소가 있습니다 서버로 전송 요청에 대한 시간 제한을하려면 서버

와의 연결을 위해

1. 당신은 래퍼를 만들 수 네트워크 인터페이스는 x 초 후에 쿼리 약속을 거부합니다. 서버의 쿼리 당 제한 시간을 구현하려면 GraphQL 서버

에 쿼리 해결을위한

2.

, 당신은 쿼리의 시작 부분에서 문맥에 쿼리 시작 시간을두고, 랩 수 각 리졸버 함수는 리졸버로부터 약속을 반환하는 함수로, 또는 타임 아웃이 경과하면 거부합니다. 당신의 GraphQL 서버와

백엔드 요청에 대한 시간 제한을 구현하는 백엔드 사이의 연결을 위해

3.

, 당신은 단순히 일정 시간 후 백엔드 시간 초과로 가져-요청을 할 수 .

추신 : 위의 해결 방법으로 인해 쿼리 나 요청 시간이 초과되지만 취소되지는 않습니다. 즉, 서버 나 백엔드가 현재 낭비되는 작업을 계속할 가능성이 높습니다. 그러나 취소는 완전히 다른 문제이며 해결하기가 더 어렵습니다.

+1

자세한 답변을 보내 주셔서 감사합니다. 제가 참조 할 수있는 실용 예제가 있습니까? 고맙습니다! – Detuned

관련 문제