您的位置:首页 > Web前端

lwp 模拟行锁堵塞 前端超时

2016-04-16 20:10 429 查看
jrhmpt01:/root/async# cat a2.pl
use  LWP::UserAgent;
use utf8;
use DBI;
use POSIX;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);

my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
$ua->agent("Mozilla/8.0");

$time1=time2iso(time());
print "\$time1 is $time1\n";
my $response = $ua->get('http://120.55.118.6:3000/api/update?id=1');
if ($response->is_success) {
print   $response->decoded_content;  # or whatever
}else{print   $response->decoded_content; };
$time2=time2iso(time());
print "\$time2 is $time2\n";
print "111111111111111111111111111111111111\n";

jrhmpt01:/root/async# perl a2.pl
$time1 is 2016-04-16 20:03:08
500 read timeout
$time2 is 2016-04-16 20:03:18
111111111111111111111111111111111111

查看接口的事务情况:

get '/api/update' => sub {
my $dbName = 'oadb';
my $dbUser = 'query';
my $dbUserPass = 'xxx';
my  $dbh = DBI->connect("dbi:Oracle:$dbName", $dbUser, $dbUserPass,{
RaiseError => 1,
AutoCommit => 0
}) or die "can't connect to database " ;
my $c = shift;
my  $id=$c->param('id');
eval{
$dbh->do("update query.test set id=100 where id =$id") or $!;
$dbh->commit();
$c->render(text =>  "update successed" );

};

if( $@ ) {
#warn "Database error: $DBI::errstr\n";
$dbh->rollback(); #just die if rollback is failing
$c->render(text =>  "update failed" );
};
};

行锁堵塞,前端超时
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: