§リアクティブストリーム統合(実験的)
Playの実験的ライブラリは、本番環境での使用にはまだ適していません。APIが変更される可能性があります。機能が正常に動作しない場合があります。
Reactive Streamsは、非同期のための共通APIを提供する新しい標準です
ストリーム。Play 2.4では、PlayのIterateesおよびEnumeratorをReactive Streamsオブジェクトに変換するためのいくつかのラッパーが導入されています。これは、PlayがReactive Streamsをサポートする他のソフトウェア(例:Akka Streams、RxJava、その他)と統合できることを意味します。
APIの目的は次のとおりです。
- Reactive Streams APIがPlayのiterateesおよびenumeratorsを表現するのに十分強力であることを確認する
- PlayとAkka Streams間の統合をテストする
- 実験的なAkka HTTPサーバーバックエンドに必要なストリーム変換を提供する
- APIを試す。
このAPIは非常に実験的です。バグは比較的少ないはずですが、そのメソッド、クラス、概念は将来的に変更される可能性が非常に高いです。
§既知の問題
- Java APIはありません。実装は難しくないはずですが、まだ完了していません。
- 実装はReactive Streamsテストスイートに対してテストされていないため、いくつかの適合性の問題がある可能性があります。
Input.EOF
イベントが失われないようにし、Input.Empty
を適切にサポートするために、Input
イベントをストリームにリフトする必要がある場合があります。現時点では、iterateesとenumeratorsを適応させるときにイベントが失われる可能性があります。- パフォーマンスチューニングは行われていません。
- すべての主要なストリームタイプとiterateeタイプ間の双方向変換のサポートが必要です。
- ドキュメントは限られています。
§使用法
Reactive Streams統合ライブラリをプロジェクトに含めます。
libraryDependencies += "com.typesafe.play" %% "play-streams-experimental" % "3.0.x"
モジュールへのすべてのアクセスはStreams
オブジェクトを介して行われます。
以下は、Future
を単一要素のPublisher
に適応させる例です。
val fut: Future[Int] = Future { ... }
val pubr: Publisher[Int] = Streams.futureToPublisher(fut)
詳細については、Streams
オブジェクトのAPIドキュメントを参照してください。
その他の例については、実験的なAkka HTTPサーバーバックエンドで使用されるコードを参照してください。以下は例が見つかる主なファイルです
次へ: Play 2.3
このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。 ドキュメントのガイドラインをお読みの上、お気軽にプルリクエストを送信してください。質問や共有したいアドバイスがありますか?コミュニティフォーラムにアクセスして、コミュニティと会話を始めてください。