得到调用方法的进展

时间:2016-11-07 19:12:30

标签: java

我需要一些建议。

我有一个服务类,其方法调用大约10个存储库方法。例如:

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

执行服务方法需要花费大量时间,我需要以百分比的形式获得当前的进展。

我可以在每次调用存储库方法后记录一些信息。例如。

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

我认为这是一个糟糕的解决方案,我想找到最好的解决方案。有人可以给我一些建议吗?

我考虑过AOP(存储库方法的建议)但是存储库方法可以被另一个服务调用,我不知道如何确定百分比。

1 个答案:

答案 0 :(得分:0)

可能不是最有效的解决方案,但我有一个想法。测量方法完成所需的时间。然后使用该值计算完成百分比并将其记录到控制台。然后只需编写一个执行此操作的单独方法。 例如,如果该方法需要60秒才能运行,您将执行100(百分比)/ 60(花费时间)并获得1.6(大致)然后在单独的方法中使用java.util.timer并创建一个计时器以每1.6秒打勾一次。在每个tick上只记录一个百分比到控制台和繁荣,你的加载计时器已经创建。

注意结果可能会略有偏差,因为计算机与您的其他方法一起运行此方法。