반응형
Timeout
TimeoutMiddleware 를 사용하여 쿼리에 타임아웃을 적용할 수 있다. 예를 들어:
class MySchema < GraphQL::Schema
middleware(GraphQL::Schema::TimeoutMiddleware.new(max_seconds: 2))
end
max_seconds 이후에는 필드가 resolved 되지 않을 것이다. 대신에, errors 키에 resolved 되지 않은 필드에 대해 에러 메시지가 추가될 것이다.
이 것은 필드 실행중에 방해한다는 것이 아니다.(그렇게 하는것은 buggy 임) 만약 너가 외부로 요청을 한다면(예를 들어 HTTP 요청이나 데이터베이스 쿼리), 해당 작업에 대해 library-specific 타임아웃을 사용하도록 해라. (예를 들어 Redis timeout, Net::HTTP 의 ssl_timeout
, open_timeout
, read_timeout
)
에러를 로그하기 위해서 미들웨어에 블락을 패스해보자.
class MySchema < GraphQL::Schema
middleware(GraphQL::Schema::TimeoutMiddleware.new(max_seconds: 2) do |err, query|
Rails.logger.info("GraphQL Timeout: #{query.query_string}")
end)
end
* 해당 글은 번역기 돌리다가 크롬 번역기 말도 안되는 해석에 지친 본인이 나중에 참고할 의도로 대충대충 발로 해석한 것이니 참고용으로만 사용하시길 바랍니다.
* 출처: http://graphql-ruby.org/queries/timeout.html
반응형
'배움의 즐거움 > 프로그래밍' 카테고리의 다른 글
(18) Graphql-ruby - tracing (0) | 2019.01.01 |
---|---|
(17) Graphql-ruby - 멀티플렉스 (0) | 2019.01.01 |
(15) Graphql-ruby - 복잡성 & 깊이 (0) | 2019.01.01 |
(14) Graphql-ruby - 쿼리 실행하기 (0) | 2018.12.31 |
(13) Graphql-ruby - 루트 타입 (0) | 2018.12.31 |