2016-04-27 4 views
2

スカラPlay Framework 2.5でjava ReactiveX(RxJava)を使用して、非同期的にcouchbaseと通信しています。私のobservableを実行するのにどれくらいの時間がかかりましたか?私は、以下のコードを使用して私の観察可能なものを定義します。RxJava(ReactiveX)を使用してObservableを実行するにはどのくらいかかりましたか?

def get(id: String) : Observable[Profile] = { 
    this.bucket 
    .async() 
    // can I have a start time here possibly using map? 
    .get(id) 
    .map[Profile](toProfile) 
    // can I have an end time here possibly using map? 
} 

私はどのように私はそれを実行するために、観察のためにかかった時間を測定することができます

Thread.sleep(1000) 

val observable = get("myID") 

Thread.sleep(1000) 

// measure start time here 
println("observable: " + observable.toBlocking.first()) 
// measure end time here 

Thread.sleep(1000) 
を使用してそれを呼び出しますか?

事前

フランシス

答えて

3

あなたはdoOnSubscribe()ブロックであなたのタイマーを開始し、その後onTerminated()でそれを完了したいと思うであなたに感謝。

long start; 
observable() 
    .doOnSubscribe(() -> start = System.nanoTime()) 
    .doOnTerminate(() -> System.out.println(System.nanoTime() - start)); 

また、あなたがネットフリックスは、RxNettyで何をすべきかに従い、チェーンを流れるオブジェクトの一部として開始時刻を返し、最後にそれを使用することができます。

例のようなものかもしれません。

関連する問題