我有一种情况,我想对数据存储做1000个不同的查询,对每个查询的结果做一些计算(得到1000个单独的结果),并返回结果列表。用TaskQueues突发处理能力?
我希望返回结果列表作为来自开始计算的相同30秒用户请求的响应,以获得更好的客户端性能。哈!
我有一个大胆的计划。
这些操作中的每一个单独通常都不会在一秒钟内完成问题,它们都不需要写入任何其他实体组,也不需要任何其他查询的任何信息。可能有可能启动1000个独立任务,每个任务都会接受其中一个查询,进行计算,并将结果存储在某种临时实体集合中?原始请求可能会等待10秒,然后对数据存储的结果执行单个查询(也许它们都设置了我可以查询的唯一值)。任何尚未结束的结果都会在客户端被注意到,客户可能会在十秒内再次请求这些值。
我希望有经验的appengineers能够回答的问题是:
- 这是可笑的?如果是这样,任何数量的任务都很可笑吗? 50会立即合理吗?
- 我不会碰到数据存储争用,如果我是读同一个实体每秒20次,对吗?争用的东西全是为了写作?
- 有没有更简单的方法从任务获得响应?
感谢您的想法。为了简单起见,我可能会让客户每隔10秒钟检查一次,或者其他事情。对于你说的N,在原始请求返回之前尝试收集响应是合理的? – 2011-04-05 17:34:32
如果对从数据存储中读取的每个值的*计算*将花费不到一秒的时间,那么1000个任务不会使其快1000倍,因为 – 2011-04-05 18:09:39
对不起?并行完成的1000个查询和计算不会比按顺序执行的查询快1000倍? – 2011-04-05 18:26:51