zoukankan      html  css  js  c++  java
  • 异步本身不会超时 报错

    jrhmpt01:/root/async# cat a6.pl 
    use AnyEvent::HTTP;
    use HTTP::Date qw(time2iso str2time time2iso time2isoz);
    my $cv = AnyEvent->condvar;
       http_request GET => 'http://120.55.xx.6:3000/api/env?ip=192.168.32.101',timeout => 20, sub {
          my ($body, $hdr) = @_;
          $time2=time2iso(time());
          print "$time2 is $time2
    ";
          print "$body
    ";
       };
         $time1=time2iso(time());
          print "$time1 is $time1
    ";
          print "11111111111111111111
    ";
    $cv->recv();
    
    
    
    jrhmpt01:/root/async# perl a6.pl 
    $time1 is 2016-07-01 09:44:55
    11111111111111111111
    
    
    
    
    
    $time2 is 2016-07-01 09:45:05
    ["","192.168.32.101  dr-mysql  env-backup"]
    
    
    
    
    /****
    
    定义的接口10秒后返回:
    
    use DBI;
    my $dbName = 'oadb';
    my $dbUser = 'query';
    my $dbUserPass = 'xxxx';
    my $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass) or die "can't connect to database " ;
    my $hostSql = qq{select  IP,INFO,ENV from  machine_info  where IP='$ip' };
    my ($a1, $a2, $a3,$a4,$a5,$a6,$a7,$a8,$a9);
    my @arr2="";
    my $selStmt = $dbh->prepare($hostSql);
    $selStmt->bind_columns(undef, $a1, $a2, $a3);
    $selStmt->execute();
    while( $selStmt->fetch() ){
    push (@arr2, "$a1  $a2  $a3" )
    };
     sleep (10);
     $c->render(json => @arr2);
     }};
    
     get '/api/bus' => sub {
    my $c = shift;
        my  $bus= $c->param('bus');
         my  $flag=$c->param('flag');
     if( ($bus)  || ($flag) ) {
    
    
    
    
    /**** 如果接口返回超过超时时间设置呢?,接口返回时间设置为30s
    
    jrhmpt01:/root/async# cat a6.pl 
    use AnyEvent::HTTP;
    use HTTP::Date qw(time2iso str2time time2iso time2isoz);
    my $cv = AnyEvent->condvar;
       http_request GET => 'http://120.55.118.6:3000/api/env?ip=192.168.32.101',timeout => 20, sub {
          my ($body, $hdr) = @_;
          $time2=time2iso(time());
          print "$time2 is $time2
    ";
          print "$body
    ";
       };
         $time1=time2iso(time());
          print "$time1 is $time1
    ";
          print "11111111111111111111
    ";
    $cv->recv();
    
    
    
    jrhmpt01:/root/async# perl a6.pl 
    $time1 is 2016-07-01 09:47:08
    11111111111111111111
    
    
    
    $time2 is 2016-07-01 09:47:28
    
    
    异步请求超时,本身不会返回错误,需要自己手动打印
    

  • 相关阅读:
    函数作业1
    函数、装饰器、迭代器、内置方法总练习题
    疑问
    装饰器
    文件练习题1,2
    内置函数练习题和总结
    GET和POST请求的区别
    HTTP请求方法
    HTTP之状态码
    HTTP之响应消息Response
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199744.html
Copyright © 2011-2022 走看看