2016-06-30 14 views
0

私は過去1年半、アカウントから仮想ゲストを読み込むために特定の方法を使用してきました。先週はいつか、それは壊れました。次のコードは、(ルビー宝石3.1.1を使用して)500内部サーバーエラーが返されます。Account.getVirtualGuests()から500 Internal Server Errorを取得する

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

関連する問題