我正在使用Python GAE SDK。Google App Engine:如何使用任務隊列進行此處理?
我有一些處理需要在的6000多個實例上完成。在單個請求中執行速度太慢,所以我正在使用任務隊列。如果我只讓一個任務處理一個實體,那麼它只需要幾秒鐘。
documentation表示只能在「批次」中添加100個任務。 (這是什麼意思?在一個請求中?在一個任務中?)
所以,假設「批處理」的意思是「請求」,我試圖找出最好的方法是創建一個任務數據存儲中的每個實體。你怎麼看?
如果我可以假設MyKind
的順序永遠不會改變,那麼會更容易。 (處理永遠不會改變MyKind
實例 - 它只會創建其他類型的新實例。)我可以完成一大堆任務,給每個任務啓動一個偏移量,間隔小於100。然後,每個任務都可以創建執行實際處理的單個任務。
但是如果有太多的實體,原始請求無法添加所有必要的調度任務會怎麼樣?這讓我覺得我需要一個遞歸解決方案 - 每個任務都會查看它給出的範圍。如果在該範圍內僅存在一個元素,則對其進行處理。否則,它會將範圍細分爲後續任務。
如果我不能指望使用偏移和限制來識別實體(因爲它們的順序不能保證是恆定的),也許我可以使用它們的鍵?但隨後我可能會發送1000個左右的密鑰,這似乎很笨重。
我在這裏走正確的道路,還是應該考慮另一種設計?
我面臨同樣的問題。看看我想要做什麼http://stackoverflow.com/questions/3211916/how-fast-google-app-engine-is 看到我的第二個答案。如果你找到任何解決方案,請告訴我。 – Manjoor 2010-07-13 13:54:38