最大数百万行を返す可能性のあるHTTPを介したクエリの結果を解析しようとしています。各行を解析する必要があります。理想的には、接続から一度に1行ずつ読み取り、それを解析しながら解析したいと思います。つまり、基本的にはFileHandle風のイテレーターですが、既存のHTTPライブラリはすべて、すべてのコンテンツを一度にフェッチするように見えます。ファイル、またはb)コード参照を使用してチャンクを処理します。Aは2パスソリューションであるため理想的ではありません(データが送信された後、ファイルを1行ずつ読み取る必要があり、おそらく不必要にストレージを占有します)。Bは、コードrefで処理するのではなく、各行を返すことができるようにするために理想的ではありません。さらに、チャンクは行ではないため、LWPソリューションはLWP行の再構成の恩恵を受けません。(AnyEventとCoroを使用した)非ブロッキングソリューションがあることは知っていますが、これらは行ごとの処理よりも非ブロッキングに関心があるようです。誰かが私をここで良い方向に向けることができますか、それとも私は間違った木を吠えていますか?
質問する
193 次
2 に答える
0
別のHTTPリソースからストリーミングするための純粋なPerlでの最も簡単な方法は何ですか?に関する受け入れられた答えを見てください。 私自身はHTTP::Liteを使用していませんが、受信したデータのコールバックベースの処理をサポートしているようです。
于 2011-04-08T13:42:16.477 に答える
0
コールバックを使用すると、必要なことをすべて実行できます。入力を取得してバッファから行を読み取るときに入力をバッファリングするようにすることができます。tie
Perlを使用すると、文字列(with)を含むほぼすべてのもの(を使用)でファイルハンドルを開くことができますopen
。あなたが見つけるかもしれない他のものは、最終的にチャンクを受け取り、とにかくそれを行に変えるでしょう。
于 2011-04-08T15:54:58.467 に答える