我正在使用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