我有四个Web应用程序使用四个不同的文件来记录日志。从我的主应用程序(日志分析器)执行这四个应用程序,然后我将读取生成的日志文件,但在应用程序执行和日志生成之间存在滞后(大约5秒并且取决于机器执行速度)。
我想要做的是如何等待日志分析器执行,直到创建和更新所有这四个日志文件。现在我正在使用
这样做Thread.sleep(6000)
但是这个系统在一些执行率低的环境中失败了。我想通过不断检查是否创建了四个文件并创建了内容来了解如何为此实现更好的解决方案。
答案 0 :(得分:1)
您可以使用file system watcher来查看目录,并在触发特定事件时采取措施,而不是等待。
这将允许您的应用程序不会不必要地等待,或者不会过早采取行动,这就是当您提供固定时间段时会发生的情况。
答案 1 :(得分:0)
您的日志分析器应该等待日志生成,而不是主动轮询。使用join
:
join方法允许一个线程等待完成 另一个。如果
t
是其当前正在执行其线程的Thread
对象,则t.join();
导致当前线程暂停执行,直到
t
为止 线程终止。