2016-06-30 71 views
0

我在過去的一年半中一直在使用特定的方法從我們的帳戶加載虛擬客人。在過去一週的某個時候,它破裂了。下面的代碼(使用紅寶石寶石3.1.1)返回一個500內部服務器錯誤:從Account.getVirtualGuests()獲取500個內部服務器錯誤

softlayer_client = SoftLayer::Client.new() 
    obj_svc = softlayer_client['Account'] 
    obj_svc = obj_svc.object_mask('mask[ id,tagReferences ]') 
    result = obj_svc.getVirtualGuests() 
    result.each do |pre_obj| 
    puts pre_obj.inspect 
    end 

但這並不:

softlayer_client = SoftLayer::Client.new() 
    obj_svc = obj_svc.object_mask('mask[ id ]') 
    result = obj_svc.getVirtualGuests() 
    result.each do |pre_obj| 
    puts pre_obj.inspect 
    end 

好像tagReferences最近被打破,因爲這已經工作很長時間。

回答

0

我已檢查過您的第一個代碼塊,它的工作正常。不過,你面臨的問題可能是由於方法返回的對象的數量,虛擬客人或標記對象。這可以使用RESULT_LIMIT(OFFSET,LIMIT),如下面的例子來避免:

OFFSET = 0 
LIMIT = 5 
USERNAME = 'set me' 
API_KEY = 'set me' 
softlayer_client = SoftLayer::Client.new(username: USERNAME, api_key: API_KEY) 
obj_svc = softlayer_client['Account'] 
obj_svc = obj_svc.object_mask('mask[ id,tagReferences ]') 
obj_svc = obj_svc.result_limit(OFFSET, LIMIT) 
result = obj_svc.getVirtualGuests() 
result.each do |pre_obj| 
    puts pre_obj.inspect 
end 

如果不解決您的問題,請嘗試下載最新SOFTLAYER紅寶石客戶的寶石(即3.2.1)

你可以查看下一個環節,以及:

https://sldn.softlayer.com/blog/phil/How-Solve-Error-fetching-http-headers

+0

的確有太多的數據回來。也許我們添加了更多的機器並將其翻倒,或者tagReferences現在返回比以前更多的數據。無論哪種方式,我都限制了從tagReferences返回的內容,並使用result_limit來選擇50個批次。現在所有好的,謝謝! – TheBK