2016-03-29 18 views
2

Perl newbie here.Kullanıcıya nasıl Mojo :: UserAgent'ın connect_timeout

my $api_data = decode_json($ua->get($url)->res->body); 

$ua = Mojo::UserAgent->new: Ben bir kod satırı var. Zaman zaman, istek askıda kalabilir (süresiz) ve bir bağlantı zaman aşımı belirtmek istiyorum.

documentation bir örnek sağlar, ancak doğru bir şekilde benim deyimime nasıl dahil edileceğinden emin değilim.

Bu durumda connect_timeout'u nasıl kullanmalıyım? Mojo'nun varsayılan bir bağlantı zaman aşımı değerini (10) belirttiğini, ancak kodda açıkça belirtmeyi tercih ediyorum. documentation

cevap

1

connect_timeout bir alıcı ve bir ayarlayıcı, her iki şekilde kullanılabileceğini göstermektedir:

my $timeout = $ua->connect_timeout; # getter 
$ua   = $ua->connect_timeout(5); # setter 

ayarlayıcı Mojo :: diğer yöntemlerle zincirli olabilir, böylece ilgili denir nesne UserAgent döndürür.

Yani yapabileceği:

my $ua = Mojo::UserAgent->new; 

my $api_data = decode_json($ua->connect_timeout(42)->get($url)->res->body); 

Ama zincir yöntemlerine zorunlu değildir, bu yüzden bir daha okunabilir bir sürümünü öneriyoruz: Basit için

my $ua = Mojo::UserAgent->new; 
$ua->connect_timeout(42); 

my $api_data = decode_json($ua->get($url)->res->body); 
+0

Teşekkür, düz- ileriye dönük cevap ve okunabilirlik önerileri. – skippr

İlgili konular