如何在线程休眠期间每尝试一定次数后记录错误?
Posted
技术标签:
【中文标题】如何在线程休眠期间每尝试一定次数后记录错误?【英文标题】:How to log an error after every certain number of tries during sleeping the thread? 【发布时间】:2014-03-25 11:49:54 【问题描述】:我有一个 while 循环,它检查 verifySystem
方法以查看它是否返回 true。如果它没有返回 true 则它将休眠 5 分钟,然后在 5 分钟后再次调用 verifySystem
方法查看它是否返回 true。
while (!verifySystem(name, value))
Thread.sleep(5 * 60 * 1000); // sleeping for 5 minutes
所以假设无论出于何种原因,该方法没有返回 true,那么我的程序将永远继续运行..
所以我想检查一下它是否至少休眠了 10 次,然后我现在会使用 System.out.println()
记录一个错误。集成代码后,我将使用记录器..
我将如何添加这个 10 次检查的逻辑,如果它已经尝试了 10 次以上,那么记录一个错误并重置计数器。所以它会再次开始每 5 分钟调用一次 verifySystem
方法来查看是否方法是否返回真..
简而言之,它会在每 10 次尝试后记录一个错误,但之后会重置计数器..
【问题讨论】:
【参考方案1】:int tryCounter = 0;
while (!verifySystem(name, value))
Thread.sleep(5 * 60 * 1000); // sleeping for 5 minutes
tryCounter++
if (tryCounter >= 10)
tryCounter = 0;
// log your message here
【讨论】:
感谢 jw23 的帮助.. 现在有意义.. 感谢您的帮助.. 我还有一个问题 here。看看你能不能帮帮我..【参考方案2】:为什么不这样:
int errorCount = 0;
while (!verifySystem(name, value))
if(++errorCount > 10)
// Log your message
System.out.println("ERROR");
// Reset counter
errorCount = 0;
Thread.sleep(5 * 60 * 1000); // sleeping for 5 minutes
errorCount = 0;
【讨论】:
以上是关于如何在线程休眠期间每尝试一定次数后记录错误?的主要内容,如果未能解决你的问题,请参考以下文章
在 UI 测试期间未能阻止系统休眠。错误代码:-536870211