2014-08-28 4 views
0

병목을 사용할 때 문제가 있습니다. 지침에 따르면 지침별로 error_handler를 추가해야합니다. 의 지시에 나는 기능 배치 :병목 사용시 오류

amazon = bottlenose.Amazon(ErrorHandler=error_handler) 

나는이있다 :하지만

amazon = bottlenose.Amazon(AWSAccessKeyId=ACCESS_KEY_ID, AWSSecretAccessKey = SECRET_KEY,AssociateTag = ASSOC_TAG) 

받고 있어요 지시에

def error_handler(err): 
    ex = err['exception'] 
    if isinstance(ex, HTTPError) and ex.code == 404: 
     time.sleep(random.expovariate(0.1)) 
     return True 

예는이 줄을 사용하여 말한다 정답이 없습니다. 왜?

답변

2

요청을 너무 빨리 제출하고 있습니까? 천천히해야합니다. 초당 하나의 요청이 좋은 속도입니다.

  • 2XX 오류가 요청의 실수로 인해 발생 : 당신은 쉽게 문제를 가장 잘 처리하는 방법을 결정할 수 있도록

    아마존 제품 광고 API는 세 가지 범주의 오류를 반환합니다. 예를 들어 요청에 필수 매개 변수가 누락되었을 수 있습니다. 의 오류 메시지는 무엇이 잘못되었는지 명확하게 알려줍니다.

  • 4XX 오류는 일시적인 오류입니다. 이 오류를 수신하면 요청을 다시 제출하십시오.
  • 5XX 오류는 아마존 내부의 오류를 반영하는 일시적인 오류입니다. 503 오류는 요청을 너무 빨리 제출하고 요청이 제한되고 있음을 의미합니다. 이 경우 요청 속도를 초당 하나의 요청으로 느려야합니다.