• 异步本身不会超时 报错


    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
    
    
    异步请求超时,本身不会返回错误,需要自己手动打印
    

  • 相关阅读:
    系统进程查看 --- 微软官方出品
    Chrome 浏览器网页保存为PDF文件
    Chrome Google浏览器下载
    最强Android书 架构大剖析 作者网站
    腾讯暑期夏令营之旅
    轨迹记录App是怎样对定位轨迹进行过滤、优化和平滑处理的
    android-8~23 View.java
    android-23 View.java
    The server encountered an internal error that prevented it from fulfilling this request.
    Android Event
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350618.html
Copyright © 2020-2023  润新知