我們推出了來自GAE的警報,假設我們需要將50 000條警報推送到CD2M(Cloud 2設備消息傳遞)。爲此,我們:如何在Google App Engine上儘可能快地創建X任務
- 閱讀所有誰願意從數據存儲
- 循環警報通過,併爲每個通知
創建一個「推送任務」的問題是,任務的創建需要花些時間所以這在用戶羣增長時不會擴展。根據我的經驗,我們只需要20-30秒就可以完成任務,而且有很多任務。一個任務的原因公關。推送消息是爲了讓我們可以在出現問題時重試任務,並且只會影響單個用戶。此外,C2DM僅支持一次發送給一個用戶。
它會更快,如果我們:
- 閱讀所有誰通過希望從數據存儲
- 循環警報,並創建一個「池任務」每100個用戶
- 每個「池任務」,將在執行時生成100個「推送任務」
任務執行速度非常快,所以在我們的場景中,似乎創建任務是瓶頸而不是執行任務。這就是爲什麼我想到這種情況能夠增加應用程序的並行性。我猜想這將導致更快的執行速度,但後來我又可能都錯了:-)
我們使用Urban Airship進行iOS通知,它們非常快,但對於Android我們自己也在做,這就是我們的延遲。但既然你已經實現了我正在考慮的事情,那麼我希望我們都在思考正確的事情,所以我會接受這個答案:-) – 2012-03-11 21:32:57