免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3873 | 回复: 10
打印 上一主题 下一主题

LWP::UserAgent 读取超时,能否不退出程序? [复制链接]

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-26 14:00 |只看该作者 |倒序浏览
调用mirror()复制远端服务器上的文件,文件有很多个,有些文件较大,读取时会超时,LWP模块打印一串提示后程序就退出了。

我想实现的是,如果发生超时或者任何读取不成功时,自动转到读取下一个文件而不退出,该怎么做呢?

超时时间和加载文件大小都作了设置,有些文件始终加载不过来,或迟或早必定超时。

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
2 [报告]
发表于 2012-07-26 14:01 |只看该作者
my $res = $agent->mirror($url,$filename);
if( $res->is_error()){
    # ...
}else{
    # ...
}

#这样做了检查,还是不行。

论坛徽章:
0
3 [报告]
发表于 2012-07-26 14:58 |只看该作者
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);

设一下超时试试!

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
4 [报告]
发表于 2012-07-26 15:12 |只看该作者
iamlimeng 发表于 2012-07-26 14:58
require LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(10);


设置了超时还是不行,一旦发生超时,模块就会调用die函数退出。

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
5 [报告]
发表于 2012-07-26 15:20 |只看该作者
我怒了,直接修改了 UserAgent 模块代码,把mirror函数里的die语句全部改成了warn ,重新定义了一个 UserAgentNew ,用这模块貌似可以工作了~

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
6 [报告]
发表于 2012-07-26 16:00 |只看该作者
  1. $ua = LWP::UserAgent->new(use_eval => 1);
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-07-26 17:55 |只看该作者
回复 6# cdtits


    new里有use_eval这个选项么。

论坛徽章:
0
8 [报告]
发表于 2012-07-26 17:56 |只看该作者
回复 5# 3P用户


    perl里的异常捕获都忘记了?eval是用来干什么的。。

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
9 [报告]
发表于 2012-07-26 18:31 |只看该作者
回复 7# sjdy521


    说明文档里面没有,但新版程序里面有的

论坛徽章:
3
15-16赛季CBA联赛之同曦
日期:2016-04-02 22:00:3915-16赛季CBA联赛之江苏
日期:2016-04-07 12:09:0015-16赛季CBA联赛之天津
日期:2016-05-04 01:20:19
10 [报告]
发表于 2012-07-26 21:16 |只看该作者
sjdy521 发表于 2012-07-26 17:56
回复 5# 3P用户


多谢,多谢指教。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP