2011-02-24 66 views

回答

3

我認爲this section of the AppEngine docs是你在找什麼。

+1

異步請求仍會阻止發送的響應。它只允許您在等待其他數據到達時進行處理。至少這是我從文檔中得到的。 – Matt 2011-02-24 17:10:46

+0

@envalid:我的印象是,OP不關心獲得迴應。他將其定性爲「推」操作。 – 2011-02-24 17:13:06

+1

'如果在請求處理程序退出時有任何URL提取請求未完成,則應用程序服務器將等待所有剩餘的請求返回或到達其截止日期,然後再向用戶返回響應。'Src:http://code.google.com /appengine/docs/python/urlfetch/overview.html – Matt 2011-02-24 20:27:01

1

你可以做的是在請求處理程序中排隊一個任務,並接收任何數據(使用deferred library)。只要任務成功排隊,您可以返回'200 OK'響應並準備好下一次推送。

0

我之前通過設置URLFetch併爲截止日期參數設置了一個非常低的值來完成此操作。我把0.1作爲我的價值,所以100ms。您還需要將URLFetch包裝在try/catch中,因爲請求會超時。

2

使用任務隊列。如果你只是在推動數據,那麼等待響應是沒有意義的。

+0

@Triptich:是的!我試過了。但是有一個缺點。在使用taskqueue時,與異步請求相比,您花費的CPU時間更多。謝謝! – 2011-02-26 20:52:45

+0

@Vyalov這可能是這樣,但你應該考慮到CPU時間非常便宜,並且使用任務隊列還有其他好處。 – Triptych 2011-02-26 21:05:31