2011-03-28 49 views
1

我的許多處理程序將任務添加到任務隊列中以執行非關鍵的後臺處理。由於這個處理並不重要,如果對taskqueue.add()的調用引發異常,我的代碼就會忽略它。App Engine:是否可以異步排隊任務?

今晚的任務隊列似乎在半小時左右就停止了。儘管我的處理程序正確地忽略了這個失敗,但是他們花了大約5秒讓taskqueue.add()調用超時並繼續處理頁面的其餘部分。這使我的網站運行非常緩慢。

那麼,是否有可能異步排隊任務 - 意味着添加任務的方式,而無需等待添加成功?

或者,有沒有辦法將該超時從5秒降低到例如1秒?

謝謝。

回答

1

您可以使用新的任務隊列方法create_rpcadd_async。如果您不關心添加是否成功,只需撥打add_async並忽略結果。如果您關心,但只想等待1秒,請在調用create_rpc時設置截止日期,並使用返回值作爲add_async的RPC參數。致電get_result以確定任務是否已成功添加。

1

我認爲你不能做任何事情,因爲add方法下的RPC調用是同步阻塞 API調用。

您可以嘗試使用Capabilities API添加一些檢查。

+0

謝謝systempuntoout,我會試試看。 – 2011-03-29 01:39:49

0

我非常確定GAE宣佈TQ增加將與下一個版本(實驗性功能)異步。

相關問題