2014-02-21 3 views
1

YQL을 사용하여 내 페이지에 특정 재고를 표시하는 데이터를 요청합니다 (관련 YQL 질문 my answer 참조).YQL 쿼리가 무작위로 실패합니다.

정기적으로 아무런 이유없이 주식 데이터를 가져 오기위한 호출이 실패합니다. 페이지를 새로 고치면 다시 작동합니다. 전반적으로, 그것은 시간의 75 %를 성공하고 다른 25 %를 실패하는 것 같습니다.

나는 YQL console 내 전화를 테스트

, 나는 같은 일을 얻을 : 때때로 resultsnull으로 돌아올 :

enter image description here

다시 테스트 버튼을 클릭 (변경하지 않고)됩니다 후 보통 결과를 올바르게 가져 오십시오.

얼마나 자주 요청을 할 수 있는지는 limit입니다.하지만 콘솔 테스트가 실패한 이후로는 어쨌든 이해할 수없는 2,000 요청/시간/IP에 가까운 방법이 없습니다.

그 외 무엇이 문제 일 수 있습니까? 야후의 서비스는 불규칙한가요?


UPDATE : YQL의 debug 옵션을 활성화하면, 나는 다음과 같은 메시지가 얻을 :

표를 찾지 정의 yahoo.finance.quotes하지를


UPDATE 2 : 위의 오류는 (@ BrianC의 답변에 따라) "커뮤니티 테이블 표시"옵션이 활성화되지 않았기 때문입니다. 그러나 해당 옵션을 사용하더라도 스크린 샷에 표시된 것처럼 가끔 null 응답을받을 수 있습니다.

+0

"디버그"옵션을 선택하고 쿼리를 다시 실행하십시오. YQL에 의해 만들어진 외부 요청에 대한 디버그 정보에 대한 링크를 제공하여 데이터 제공자에게 문제가 있는지 여부를 확인해야합니다. – salathe

+0

좋은 생각, 불행히도 디버깅 옵션을 사용할 수있는 상태에서 아직 실패 할 수 없었습니다 ... 하하. – daGUY

답변

-1

기본적으로 YQL 콘솔은 기본 제공 테이블 만 사용합니다. yahoo.finance.quotes 테이블은 실제로 커뮤니티 테이블의 일부입니다 (참조 : datatables.org).

해결 방법은 왼쪽 상단에있는 커뮤니티 테이블 표시 옵션을 확인 (사용)하는 것입니다. 위와 같이 예제 쿼리가 작동합니다. 이 옵션을 선택하면 콘솔 맨 아래에 표시된 나머지 쿼리에 env 매개 변수도 추가됩니다. 앱이 YQL에 대한 API 호출을 할 때 이것을 추가해야합니다.

참고 : Yahoo Finance 테이블이 커뮤니티 테이블의 일부이며 기본 제공되지 않는 이유는 궁금한 점이 있습니다. 이러한 테이블은 관련 웹 페이지를 긁어 모으는 비공식 테이블이기 때문입니다. 불행히도 공식 Yahoo Finance API (또는 YQL 테이블)는 아직 없습니다.

+0

흠 ... 그 말이 맞는 것 같지만, 그 옵션을 체크해도 여전히 YQL 콘솔 내에서 한 번 실패 할 전화를받을 수있었습니다. 그리고 내가 사용하고있는 쿼리는 이미'env' 파라미터를 가지고 있습니다 ... – daGUY

관련 문제