【HDFS】GenericTestUtils#waitFor的使用

在写HDFS代码的单元测试时,经常会有这样的需求:
执行了某个操作之后需要等待一段时间某个变量或者状态成为我们期望的值。

举个例子:
以测试回收站Trash的间隔清理为例,我们创建了一个测试目录,然后把它delete,此时它会被放到.Trash/Current里。等待超过interval之后被删除。

然后我们想判断Trash里的这个文件还是否存在,怎么办呢?一种方法是Thread.sleep。这种办法不是很灵活,需要自己去估算时间。

HDFS帮我们提供了专门的工具类,用来满足这种需求,即GenericTestUtils#waitFor(内部其实也是用了sleep)。

我们可以按下面的代码这么写:

    GenericTestUtils.waitFor(new Supplier<Boolean>()

你可能感兴趣的:(HDFS全方位实战,hdfs,hadoop,大数据)