2

이 코드입니다 :이 문제를 해결하는 방법에 대한동영상이 첨부 된 타임 라인에 여러 개의 카드를 게시하는 데 마감일을 초과했습니다. 우선 유리를 통해 파이썬을 사용하고 있으며 내 유리를 방문한 모든 사용자에게 비디오 첨부 파일이있는 카드를 보내려고합니다.

: HTTPException: Deadline exceeded while waiting for HTTP response from URL: https://www.googleapis.com/upload/mirror/v1/timeline?uploadType=resumable&alt=json&upload_id=AEnB2UqeMjtTAaB7wWw-8yuVoaBdxaD5-mkFx2TJo7PynEXmVCkPLlDFo0l_1t8du_JetszdgmHXF9d-VuD8N0XmwXQVBMynow 

어떤 생각 : 내 로컬 컴퓨터에

 #posting video 
     media_link = util.get_full_url(self, '/static/video/man_on_the_moon.mp4') 
     resp = urlfetch.fetch(media_link, deadline=2000) 
     media_video = MediaIoBaseUpload(io.BytesIO(resp.content), mimetype='video/vnd.google-glass.stream-url', 
              resumable=True) 

     users = Credentials.all() 
     for user in users: 
      creds = StorageByKeyName(Credentials, user.key().name(), 'credentials').get() 
      mirror_service = util.create_service('mirror', 'v1', creds) 
      timeline_item = {'text': 'video mode v3'} 
      mirror_service.timeline().insert(body=timeline_item, media_body=media_video).execute() 

이 코드는 완벽한 작동하지만 GAE에 그것을 배포되는이 생성? 나는 타임 라인()을 이해했다. 삽입물은 카드를 올리는 각 사용자마다 매번 media_body를 업로드한다. 이것은 꽤 자원을 소비하는 것 같습니다. 권리? 다시

감사들

이 전체 스택입니다 :

Deadline exceeded while waiting for HTTP response from URL: https://www.googleapis.com/upload/mirror/v1/timeline?uploadType=multipart&alt=json 
Traceback (most recent call last): 
    File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__ 
    rv = self.handle_exception(request, response, e) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__ 
    rv = self.router.dispatch(request, response) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher 
    return route.handler_adapter(request, response) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__ 
    return handler.dispatch() 
    File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch 
    return self.handle_exception(e, self.app.debug) 
    File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch 
    return method(*args, **kwargs) 
    File "/base/data/home/apps/s~watchup-stage/1.369179617747477845/main_handler.py", line 340, in post 
    mirror_service.timeline().insert(body=timeline_item, media_body=media_video).execute() 
    File "lib/oauth2client/util.py", line 128, in positional_wrapper 
    return wrapped(*args, **kwargs) 
    File "lib/apiclient/http.py", line 676, in execute 
    body=self.body, headers=self.headers) 
    File "lib/oauth2client/util.py", line 128, in positional_wrapper 
    return wrapped(*args, **kwargs) 
    File "lib/oauth2client/client.py", line 490, in new_request 
    redirections, connection_type) 
    File "lib/httplib2/__init__.py", line 1570, in request 
    (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey) 
    File "lib/httplib2/__init__.py", line 1317, in _request 
    (response, content) = self._conn_request(conn, request_uri, method, body, headers) 
    File "lib/httplib2/__init__.py", line 1286, in _conn_request 
    response = conn.getresponse() 
    File "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/httplib.py", line 500, in getresponse 
    raise HTTPException(str(e)) 
HTTPException: Deadline exceeded while waiting for HTTP response from URL: https://www.googleapis.com/upload/mirror/v1/timeline?uploadType=multipart&alt=json 
+0

그래도 문제가 해결되지는 않지만 조금 더 자세하게 문제를 해결하는 데 도움이됩니다. App Engine에서 Glass로 다른 타임 라인 항목을 삽입 할 수 있습니까? 오류 로그에 다른 것이 있습니까? 인증되지 않은 클라이언트 (예 : 명령 줄 cURL 또는 Chrome 시크릿 창)를 사용하여 동영상에 액세스 할 수 있나요? – mimming

+0

안녕하세요 제니, 답장을 보내 주셔서 감사합니다. 같은 코드베이스로 이미지를 게시 할 수있어서 크기와 관련된 문제라고 생각합니다. 파일 (https://watchup-stage.appspot.com/static/video/man_on_the_moon.mp4)을 확실히 탐색 할 수 있습니다. – FaustoDassenno

+0

이상의 로그 : 응답 conn.getresponse =() \t :하는 GetResponse \t에 파일 "/base/data/home/runtimes/python27/python27_dist/lib/python2.7/httplib.py"선 500 : 상향 HTTPException (str (e)) \t : HTTPException : URL의 HTTP 응답을 기다리는 중 마감 시간이 초과되었습니다 : https://www.googleapis.com/upload/mirror/v1/timeline?uploadType = 재개 가능 & alt = json & upload_id = AEnB2UpTMeODyvX9ovlkinXWHUlb_0GLTH-sWpgE1_isnpt0jsJTh-myGIQgCLf4je9A2BCAHcrkQYJIHks29PtV_a33bKj7QA – FaustoDassenno

답변

4

이 유형의 문제도 발생했습니다. 이를 해결하기 위해 HTTP 요청 시간을 늘리고 큐로 이동해야했습니다.

Google 미러 API Python 예제로 요청을 제출했지만 일이 "단순"하도록 거부되었습니다.

내 차이점을 체크 아웃 할 수 있습니다. https://github.com/JessieAMorris/mirror-quickstart-python/commit/b67c0ecdf83207b0c3b596173c95a53804b23525입니다.

기본적 개요는 다음

  1. 이동 처리
  2. 대기열에 반입 된 UrlFetch 및 httplib2는
  3. 그래서 같이 httplib2를 URL 가져 오기위한 시간 제한을 늘리고 :

    urlfetch.set_default_fetch_deadline(45) 
    httplib2.Http(timeout=45) 
    

이러한 변경 사항을 적용하면 아무런 시간 초과가 발생하지 않습니다. 이자형.

+0

네, 효과가있었습니다. – FaustoDassenno

1

당신은 구글 앱 엔진에 대한 프런트 엔드 요청을 완료하는 데 60 초 있습니다. 그러나 지역적으로는 그 제한이 따르지 않는 것 같습니다.

더 긴 처리를위한 유일한 옵션은 태스크 큐 (10 분 마감 시간)와 백엔드 (무기한)입니다.

+0

의견을 보내 주셔서 감사합니다. 논리를 대기열로 옮겨 보았습니다. 로컬에서는 모든 것이 매력으로 작용하지만 찌르다가 15 초 뒤에 나타납니다. 2013-07-31 11 : 27 : 15.725 URL의 HTTP 응답을 기다리는 중 마감 시간이 초과되었습니다 : https : //www.googleapis. co.kr/upload/mirror/v1/timeline? uploadType = 재개 가능 & alt = json & upload_ – FaustoDassenno

+0

흥미 롭습니다. 전체 호출 스택을 공유 할 수 있습니까? MediaIoBaseUpload가 실제로 파일을 업로드합니까? – Tombatron

+0

나는 그 행동이 일관성이 없다고 착각했다. 이제 오류가 다시 나타납니다 .HTTPException : URL에서 HTTP 응답을 기다리는 동안 마감 시간이 초과되었습니다. https://www.googleapis.com/upload/mirror/v1/timeline?uploadType=multipart&alt=json 처리기가 대기열에서 호출되었습니다. . – FaustoDassenno