2014-10-24 4 views
0

콜백이있는 RPC로 urlfetch.make_fetch_call (webapp2.RequestHandler)을 만들고 RPC를 기다리지 않고 Appengine 요청이 완료되면 비동기 호출은 어떻게됩니까? 종료할까요, 아니면 Appengine이 완료하도록할까요? 상기 애플리케이션은 메소드를 호출한다 ((대기) check_success() 또는 get_result())에Appengine Python 비동기 urlfetch 요청 완료 후

"콜백 백그라운드에서 발생하지 않는다 :

답변

2

워드 프로세서 [1]에서 문은 힌트 콜백 함수를 호출합니다. "

일반적으로 비동기 호출은 요청에 대해 로컬이므로 App Engine 런타임에서 별도의 프로세스로 실행되지 않습니다. 즉, 사용자가 보길 원하면 '데몬'스레드가 아닌 '사용자'스레드입니다. 그것으로 더). 요청이 종료되면 (DeadlineExceededError 또는 다른 방법으로) 보류중인 비동기 호출도 종료됩니다.

[1] https://cloud.google.com/appengine/docs/python/urlfetch/asynchronousrequests

+0

그래서 그것은 'RequestHandler's 프로세스 종료시에 따라? – Eliezer

+0

정확히. 사용자 스레드는이를 생성 한 프로세스보다 오래 지속될 수 없습니다. SDK의 Python 스레딩 모듈 사용은 소스에서 볼 수 있지만 조금 털이 있습니다. - https://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/api – Adam

+0

I 나는 시간이있을 때 그것을 파헤치는 것을 좋아합니다. 또한 생산 appengine이 다르게 작동한다고 가정합니다. 내 주요 질문은 각각의'RequestHandler'가 자체 프로세스에서 실행되는지 여부입니다 (나는 희망하지 않습니다). – Eliezer