YahooFinanceのデータ約4000件処理中に上記例外エラーが5,6回場所不定期で発生します。例外エラーが発生すると約2〜3分のインタバルの後リトライで続行し処理はノーマルエンドします。下記は使用しているWebClient.OpenRead用に作成したFunctionのコードです。(他の処理で約1年の実績があります)
Function GetClipWCORead(ByVal wc As WebClient, ByVal uri As String) As String
Dim st As Stream = Nothing
Dim Rc As Integer = 0
Do
Try
st = wc.OpenRead(uri)
Rc = 0
Catch ex As Exception
If Rc < 3 Then
Rc += 1
Else
Return Nothing
End If
End Try
Loop While Rc > 0
Dim enc As Encoding = Encoding.GetEncoding(51932)
Dim sr As StreamReader = New StreamReader(st, enc)
Dim ClipTxt As String = sr.ReadToEnd()
sr.Close()
Return ClipTxt
End Function
# 回答に非ず。
まずは、どのような WebException が発生しているのかを追跡するため、
トレースリスナを割り当て、例外発生時の Status や Message などを
Trace.WriteLine で出力するようにしておくことから始めてみては?
一時的に、サイト側に問題が発生していたのかも知れませんし。
魔界の仮面弁士さん、いつもお世話になります。トレースの結果は以下の通りです。YahooFinから3986件のデータを読み込み処理を3回ランしました。
例外エラーは各5件で(計15件)「操作はタイムアウトになりました。」が13件、「リモート サーバーに接続できません。」が2件。何れも1回のRetryでセーフになっています。発生間隔はランダムです。(Keyが毎回異なる)当方側で何か回避・軽減策がないものか教えていただきたい。不足情報があればご指摘ください。
# 回答に非ず(再
その手のエラーであれば、やはりリトライで対応ということになるのかも。
手動で IE からブラウジングしているときにも起こりえるエラーゆえに…。
魔界の仮面弁士さん、了解しました。リトライで対応します。参考になりました、有難うございます。今後ともご指導をお願いいたします。
ツイート | ![]() |