首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DeadlineExceededError解决方法

DeadlineExceededError解决方法
EN

Stack Overflow用户
提问于 2011-03-14 15:24:20
回答 3查看 548关注 0票数 1

我在做一个类似网络蜘蛛的东西。它将从WEB列表中捕获我想要的数据。WEB列表的数量约为20个,每个列表可以在1到10秒内完成。

我知道DeadlineExceededError意味着我的请求处理程序没有在30秒内完成。我也知道我不能改变30秒的限制。

所以我需要把我的工作分成几个小块,但我不知道怎么做。

下面是我的代码:

代码语言:javascript
运行
复制
    List<String> ids = agent.getWebList();

    if(ids.iterator().hasNext()) {
        for(String id : ids) {
            Data d = agent.getDetailedDataById(id);
            agent.updateData(d);
        }
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-14 19:17:42

如果你正在使用网络爬虫,最好的方法是使用任务队列:

Java Task Queue docs

Python Task Queue docs

票数 3
EN

Stack Overflow用户

发布于 2011-03-14 20:55:34

在迭代您的ids时,请保留一个计数器。当您捕获DeadLineExceededError时,将计数器作为参数传递给从该位置开始处理的任务。这将按顺序完成。您还可以拆分作业,并将其分配给多个任务同时处理。

票数 2
EN

Stack Overflow用户

发布于 2011-03-14 17:04:27

将引发两个DeadlineExceededError。您可以在第一次捕获它,并整理您的状态,以便稍后再次继续或为下一阶段产生一个任务。

你不可能第二次抓到DeadlineExceededError

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5295833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档