問題タブ [scalaz-stream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - TCP から読み取り、stdout に書き込む方法は?
TCP から読み取り、標準出力に書き込む単純な scalaz-stream の例を実行できません。
何も印刷せずに、ただそこに座っています。
また、 を使用してさまざまなアレンジを試みましたがto
、常にtcp.lift
を取得するための呪文がProcess[Connection, A]
含まれています。
これはコンパイルさえしません。
wye
ソース ストリームと印刷ストリームを一緒にする必要がありますか? 元のプルリクエストで見つけたtcp
置換の例nio
はこれを示しているように見えましたがwye
、Process
.
編集すると、Paul によって説明された型の問題に加えて、内部プロセスを「手動で」実行する必要があることがわかりましたp.map(_.run.run).run.run
。これが慣用的な方法だとは思いませんが、うまくいきます。
scala - scalaz-stream プロセスを 2 つの子ストリームに分割する
scalaz-stream を使用してストリームを分割/フォークしてから再結合することは可能ですか?
例として、次の関数があるとしましょう
scalaz-stream を使用すると、この例では期待どおりの結果が得られます - 1 から 10 までの数値のタプルがシンクに渡されます。
streamOfNumbers
ただし、 IO を必要とするものに置き換えると、実際には IO アクションが 2 回実行されます。
を使用するTopic
と、ストリーム内の要素を正しく複製する pub/sub プロセスを作成できますが、バッファリングは行われません。シンクが消費するペースに関係なく、ソース全体をできるだけ速く消費するだけです。
これを制限された Queue でラップすることはできますが、最終結果は必要以上に複雑に感じられます。
ソースから IO アクションを複製せずに scalaz-stream でストリームを分割する簡単な方法はありますか?
scala - scalaz-streams の Task からの例外をログに記録して無視する
いくつかの scalaz-stream ドキュメントから例を挙げてみましょう。ただし、理論的なひねりがあります。
この場合、ファイルには double 以外の文字列が含まれている可能性が非常に高く、 はfahrenheitToCelsius
いくつかのNumberFormatException
. この場合、このエラーをログに記録し、その後のストリーム処理のために無視したいとしましょう。それを行う慣用的な方法は何ですか?いくつかの例を見てきましたが、通常collectFrom
はストリームです。
scala - scalaz-stream `ask-then-wait-reply` tcp クライアントの実装方法
最初にリクエストをサーバーに送信し、その返信を待つクライアントアプリを実装したい(httpと同様)
私のクライアントプロセスは
ここにアピがあります
次に、残りの部分を実装する方法はask
?
scalaz-stream - このプロセスはスキャンのように感じますが、そうであるかどうかはわかりません...そうですか?
ログ ファイルの解析に役立つプロセスを作成しました。ログ ファイルは、文字列タグでタグ付けする必要があります。レコードがこの文字列タグを提供できるわけではないので、各ログ イベントで何らかの状態を維持して、各イベントにタグが付くようにする必要があります。イベントにタグがない場合は、最後に見つかったタグを使用したいと考えています。これにより、以下のようなログを解析し、メッセージ行が eventindex04 レコード ヘッダーの一部であっても、「タグ」をメッセージ行に関連付けることができます。イベントをエンベロープでラップし、ロジックをエンベロープに含めることもできますが、どこにでもエンベロープがあり、重いように見えます。
私はうまく機能するこのプロセスをまとめました:
これは、スキャン/フォールドで表現する必要があるように感じますが、機能させることができませんでした。これをスキャン/フォールドとして書き換えることはできますか?
slick - scalaz-streams をリアクティブ ストリームに接続するにはどうすればよいですか (reactive-streams.org のように)
slick 3.0.0 クエリから返されたデータを db.stream(yourquery) 経由で scalaz-stream にストリーミングしたかったのです。
react-streams.org は、さまざまなライブラリが実装する API とデータフロー モデルを使用しているようです。
scalaz-stream プロセスから洗練されたパブリッシャーに逆流するバック プレッシャーをどのように処理しますか?
scala - scalaz-stream: 連結でチャンクする方法は?
チャンクして連結する慣用的な方法はありますか?
私が見つけた方法 (バイトの例):
-
1.
ただし、この場合、中間Vector
(からchunk
) は実際には必要ありません。
- process1.chunk からのコピー/貼り付けに基づく:
Process
既存の 'esを組み合わせて同じことを行う方法はありますか?
副次的な質問: ?repeat
の代わりに使用できます。++ go
これは前のものと同じですか: