2016-11-07 18 views
0

私はいくつかのアドバイスが必要です。呼び出し方法の進捗状況を取得

私は約10のリポジトリメソッドを呼び出すメソッドを持つサービスクラスを持っています。例:

public void serviceMethod() { 
    repositoryMethod1(); 
    repositoryMethod2(); 
    repositoryMethod3(); 
    .... 
} 

サービスメソッドの実行には多くの時間がかかり、現在の進捗状況をパーセンテージで取得する必要があります。

リポジトリメソッドを呼び出すたびに情報を記録できます。例えば。

public void serviceMethod() { 
    repositoryMethod1(); 
    --log that 10% is completed 
    repositoryMethod2(); 
    --log that 20% is completed 
    .... 
} 

私はそれが悪い解決策であり、最高のものを探したいと思っています。誰かに私に助言を与えることができますか?

私はAOP(リポジトリメソッドのアドバイス)について考えましたが、リポジトリメソッドは別のサービスから呼び出すことができ、パーセンテージの決定方法はわかりません。

+0

*私はそれが悪い解決策だと思う*:どうしてそう思うのですか?それは私にとって非常にシンプルでわかりやすいものです。 –

+0

非常に広い質問以来、ここではなくコードレビューに投稿してみませんか? – misha130

+0

@JBNizet私はそれがコードの重複を追加すると思います。 – meverik

答えて

0

最も効率的なソリューションではないかもしれませんが、私は考えています。メソッドが完了するのにかかる時間を測定します。その値を使用してパーセンテージの完了を計算し、それをコンソールに記録します。次に、このアクションを実行する別のメソッドを記述します。 たとえば、メソッドの実行に60秒かかった場合、100(パーセンテージ)/ 60(時間がかかります)と1.6(大まかに)を取得し、別のメソッドでjava.util.timerを使用し、1.6秒。すべてのティックでコンソールにパーセントを記録するだけで、あなたのローディングタイマーが作成されました。

メモこの方法を他の方法で実行しているコンピュータでは、結果に若干の歪みが生じることがあります。

+0

私はそのような解決策について考えましたが、方法の実行は常に異なり、約3時間かかります。 – meverik

関連する問題