Używam Savona do wykonywania niektórych wywołań interfejsu API, ale zajmuje to dużo czasu, aby odpowiedzieć z tego powodu, że otrzymuję błędy przekroczenia limitu czasu.to jest jakikolwiek sposób na zmianę domyślnej wartości limitu czasu. Używam savon 0.7.9 ruby 1.8.7 i szyn -v 2.3.2.jak ustawić domyślną wartość czasu Savona
9
A
Odpowiedz
22
Savon używa interfejsu HTTPI gem jako interfejsu warstwy transportowej. Dlatego musisz zmienić limit czasu dla wywołań http.
tu przykład (Savon 1.x)
jira = Savon::Client.new do
wsdl.document = 'http://jira.my-domain.com/rpc/soap/jirasoapservice-v2?wsdl'
end
jira.http.read_timeout = 300
Edycja: składnia zmieniła się Savon 2.x
jira = Savon.client(
wsdl: 'http://jira.my-domain.com/rpc/soap/jirasoapservice-v2?wsdl',
open_timeout: 300,
read_timeout: 300,
ssl_verify_mode: :none)
p jira.operations
1
W Savon 3, operacja jest jak następuje:
client = Savon.new(wsdl_url)
client.http.send_timeout = 300
client.http.receive_timeout = 300
W urządzeniu Savon 3 nie można przekazać ich jako opcji konstruktorowi, ale możesz dostarczyć niestandardowy adapter http (w celu zastąpienia domyślnego Savon :: HTTPClient) w następujący sposób:
client = Savon.new(wsdl_url, MyAdapter.new)
+1
Savon bardzo lubię zmieniać sposób wykonywania czynności ... Dzięki za aktualizację. –
Jeśli wstawisz 'http.read_timeout = 300' wewnątrz bloku, to nie zadziała. – pisaruk
To są sekundy w drodze. –