2010-02-14 173 views
2

當我從用戶那裏得到一個GET請求時,我向他們發送響應,然後花費第二次日誌記錄來處理這個請求。有沒有辦法在我準備好響應時關閉連接,但是繼續執行該日誌記錄部分,以便用戶不必等待它完成?指示GET響應完成w/Python AppEngine

回答

3

Google App Engine docs for the Response object

App Engine的不支持 之前發送 數據到用戶的瀏覽器退出處理器。一些網絡服務器 使用這種技術來響應於單個請求將數據「流」到用戶的瀏覽器上的 時間段。 App Engine不支持此 流技術。

所以沒有簡單的方法。如果您有一組數據可以傳遞給更長時間的「過程和日誌」方法,請嘗試使用deferred library。請注意,這將需要高達捆綁您的數據並將其發送到任務隊列做你的處理和記錄,所以

  1. 你可能不會節省很多時間,而且
  2. 結果可能不太像你」 d想要 - 例如,您將從不同的請求中記錄日誌,因此可能需要從根本上改變日誌記錄

不過,您可以嘗試。

0

你有兩個選擇:

  1. 使用Task Queue API。只要數據少於10k(這是任務隊列有效負載的限制),排隊任務應該很快。
  2. 使用Rafe在this video中描述的'偷襲'技巧在響應完成後執行處理。