如果我有一個循環隊列表示100個任務,並且這些任務中的每一個都有可能使任務排隊,那麼我如何判斷是否所有任務都已完成?如何判斷一組應用程序引擎任務是否全部完成?
我想過使用ShardedCounters這個問題。一旦每個任務完成,我可以增加一個計數器,然後檢查計數是否爲100.當然,除非我進入這個遞歸計數場景,否則任務會產生自己的任務。我不確定這是不是一個好主意,因爲它看起來分片計數器不是原子的。
如果我有一個循環隊列表示100個任務,並且這些任務中的每一個都有可能使任務排隊,那麼我如何判斷是否所有任務都已完成?如何判斷一組應用程序引擎任務是否全部完成?
我想過使用ShardedCounters這個問題。一旦每個任務完成,我可以增加一個計數器,然後檢查計數是否爲100.當然,除非我進入這個遞歸計數場景,否則任務會產生自己的任務。我不確定這是不是一個好主意,因爲它看起來分片計數器不是原子的。
你應該看看新的AppEngine pipeline API。這是將昂貴的任務鏈接在一起並通知何時完成的一種方式。還有一個很好的video from the Google IO conference,它演示了它。
根據不同的情況下,您可以測試,看是否有任務(匹配某種模式或具有一定ID /等)是目前入隊使用REST API:
http://code.google.com/appengine/docs/python/taskqueue/rest.html#method_taskqueue_tasks_list
我應該提到,我正在使用推送隊列,不過謝謝 –
立即觀看YouTube上的Slatkin對話。如果它導致解決方案,我會將其標記爲它。謝謝! –
管道API非常好,但我認爲它不適用於一般遞歸 - 只有尾部遞歸。 –
是的,這是答案。管道API令人難以置信! http://stackoverflow.com/questions/8996760/writing-to-an-appengine-blob-asynchronously-and-finalizing-it-when-all-tasks-com –