在谷歌应用程序引擎中使用并行处理java

时间:2012-01-06 08:32:56

标签: java google-app-engine

我有一系列重复性工作,每个工作都需要访问许多不同的网站 - 每个工作范围从100到10000个。

我在Google文档中读到的任务队列API。任务可用于向具有某些参数(定义为任务的一部分)的内部相对URL发送请求。

我想要的是能够控制流程,例如,有一个'队列',其中只有50个站点作为一个作业的一部分同时访问,然后一个更快的队列,其中一个作业访问多达5000个站点同时...

如何在Google App Engine for Java中完成上述操作?

我能想到的唯一解决方案是像Korus这样的并行处理框架,但这并没有为我提供任务队列提供的控制级别......是否有一些简单和/或更好的完成方式我想要什么?

1 个答案:

答案 0 :(得分:2)

Arvind的,

只需配置队列即可轻松完成。以下是有关如何配置流程费率的相关文档:http://code.google.com/appengine/docs/java/config/queue.html#Defining_Push_Queues_and_Processing_Rates

总之,有几个属性可以帮助您控制应用程序处理队列任务的方式。它们是:速率,存储桶大小,最大并发请求。它们中的每一个都会让您限制处理速度。请记住,App Engine使用token buckets算法来控制任务执行率。

对于您的第一个示例,只需设置<max-concurrent-requests>50</max-concurrent-requests>

即可控制同时访问的50个网站

另一个参数将帮助您设置处理任务的速度,直到您获得该队列的50个并发请求。

希望这有帮助!

相关问题