2011-06-17 19 views
9

Bazı hata aramaları yapmak için savon kullanıyorum ama zaman aşımı hataları alıyorum çünkü bunun için uzun zaman alıyor.O zaman aşımı varsayılan değerini değiştirmek için herhangi bir yolu yoktur. Savon 0.7.9 ruby ​​1.8.7 ve raylar -v 2.3.2 kullanıyorum.savon varsayılan zaman aşımı değeri nasıl ayarlanır

cevap

22

Savon, taşma HTTPI'yi aktarım katmanına arabirim olarak kullanır. Bu nedenle, http aramaları için zaman aşımını değiştirmeniz gerekir. Burada

bir örnek (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 

DÜZENLEME: sözdizimi Savon 2.x değişti

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 
+3

sen işe yaramaz bloğunun içinde 'http.read_timeout = 300' koyarsanız. – pisaruk

+5

Bu arada bunlar saniyedir. –

1

Savon 3olarak, aşağıdaki gibi bir işlemdir:

Savon 3'te
client = Savon.new(wsdl_url) 
client.http.send_timeout = 300 
client.http.receive_timeout = 300 

, sen kurucusuna seçenekler olarak bunların içinde geçemez, aşağıdaki gibi fakat (varsayılan Savon :: HTTPClient yerine) özel bir http adaptörü sağlayabilmektedir:

client = Savon.new(wsdl_url, MyAdapter.new) 
+1

Savon, işleri nasıl değiştirdiğini gerçekten seviyor ... Güncelleme için teşekkürler. –

İlgili konular