2009-07-18 88 views
0

中提取/解析多个提要假设我有超过10,000个想要定期提取/解析的提要。 如果这段时间是1小时,那将是24x10000 = 240,000次提取。使用任务队列来安排在appengine python

实验室taskqueue api的当前10k限制会阻止从 每个提取设置一个任务。那么如何做到这一点?

更新:re:获取每个任务的nurls: 给定每个请求30秒的超时在某个点,这将达到上限。有 那里反正它parallllize,所以每个tasqueue启动一堆async paralell提取每一个将花费不到30秒完成,但很多东西可能需要更多的比

回答

2

2个提取每个任务? 3?

0

对提取进行分组,因此不是排队等待1个提取,而是排队,例如,执行10次提取的工作单元。

+0

请参阅问题的更新。 – molicule 2009-07-18 22:39:02

3

这里的异步网址抓取API:

http://code.google.com/appengine/docs/python/urlfetch/asynchronousrequests.html

设置了一堆用一个合理的期限请求(给自己的超时下一定的裕量,因此,如果一个请求超时,你还有时间的处理其他)。然后依次等待每个人并在他们完成时处理。

我自己并没有在GAE中使用这种技术,所以你自己发现了任何不明显的陷阱。遗憾的是,在API中似乎没有select()风格的调用等待几个请求中的第一个完成。

+0

因此,如果我正确读取异步文档,在启动一堆rpc并以for rpc in rpcs: rpc.wait()关闭后,原始任务队列返回(满足http调用的30秒超时)。然而,异步urlfetches正在工作(无头),并通过与其关联的回调进行处理。是对的吗?? – molicule 2009-07-19 00:39:29