2012-01-15 3 views
0

現在、私はTwitterのAPIからストリームを読み取り、オブジェクトに解析するアプリケーションに取り組んでいます。 現時点では、ストリームを読み取り、DataContractJsonSerializerのReadObjectを使用してオブジェクトを作成します。どのように私は失敗許容量を持つ無限ストリームを読み続ける

これは素晴らしいです!

HOWEVER: 私のプログラムがストリーム(インターネットが遅くなったりw/e)に追いついて、解析するのに十分なデータがない、オフチャンスで何が起こるか心配です...メソッドはおそらく例外をスローしますが、私は新しいデータを待ってから、同じオブジェクトをやり直して続行します。

また、壊れたデータがこのようなストリームなどに入力された場合、どのようにしてメソッドをより安定にすることができるのだろうかと思っていました。すべての答え/アイデアを事前に

感謝:)

+0

データが破損している場合にのみ例外が発生することがあります。さもなければ、それを行うのに十分なデータがあるとすぐにそれをデシリアライズします。 – Groo

答えて

0

あなたのプログラムは、Twitterのフィードに追いつく場合は、読み取りを完了するのに十分なデータを取得するまで、DCJSだけでブロックする必要があります。ストリームは読者のレイテンシを隠すように設計されているため、これは通常問題ではありません。

あなたが追いつくことはありませんが、メモリが足りなくなり、OOMEをスローしてプログラムがクラッシュするまで、ずっと遅れることはないでしょう。

私は、ストリームをパーズで解析し、ファイルのようなものに書き込んだり、読み込んだり(並列ファイルでも、ローリングファイルなどを使って)読むことをお勧めします。

+0

ありがとうございました! しかし、私はファイルストリームを持っています、どうやってストリームのミスをキャッチできますか? 私が知りたいことは、データの次の良い平和をどうやって見つけるかです。私が読書の後ろに落ちるならば、結局私は作品をスキップしてファイルの最新の部分の1つで続けたいと思うでしょう。 もし私がそれについて考えると、PCがインターネットストリームから受け取るデータの処理速度が遅くなることは疑いがありますが、処理がstruct/class – user1149942

関連する問題