- 论坛徽章:
- 1
|
本帖最后由 laolun 于 2015-08-31 16:03 编辑
问题解决了,用搞定。速度比之前的快很多。
附上io那部分代码:- sub thread_io{
- while (1)
- {
- if ($#data_queue == -1)
- {
- Coro::Timer::sleep(1);
- next;
- }
- my $data = shift(@data_queue);
- ++$processing_count;
- http_request GET=>$data, headers=>{ "user-agent" => 'Mozilla/5.0 (Windows NT 6.1; rv:40.0) Gecko/20100101 Firefox/40.0'}, timeout=>60, sub {
- my ($body, $hdr)=@_;
- if($hdr->{Status} =~ /^2/){
- print $data."\t"."success\n";
- push(@result_queue, "$data\t".do_sth(filter($body)));
- }else{
- print $data."\t"."failed\n";
- append("failed.txt", $data."\n");
- }
- };
- --$processing_count;
- }
- }
复制代码 删掉了LWP模块,删掉了监控线程,的timeout会自动结束超时的连接。
膜拜版主,谢谢!学艺不精,需要多多努力啊,都准备去研究java了,真惭愧! |
|