阻止执行,直到一组指定的条件变为真。这旨在与 并行 任务一起使用,以同步一组进程。
要等待的条件在 嵌套元素 中定义,如果指定了多个条件,则任务将等待直到所有条件都为真。
如果 maxwait 和 maxwaitunit 都未指定,则默认 maxwait 为 3 分钟(180000 毫秒)。
如果设置了 timeoutproperty 属性,则如果条件在指定时间内未变为真,则将创建具有该名称的属性。
属性 | 描述 | 必需 |
---|---|---|
maxwait | 在任务失败之前,等待所有必需条件变为真的最大时间。 | 否;默认为 180000 maxwaitunits |
maxwaitunit | 必须用于解释 maxwait 属性值的单位时间。有效值为
|
否;默认为 毫秒 |
checkevery | 每次测试条件之间等待的时间。 | 否;默认为 500 checkeveryunits |
checkeveryunit | 必须用于解释 checkevery 属性值的单位时间。有效值为
|
否;默认为 毫秒 |
timeoutproperty | 如果 maxwait 已超过,则要设置的属性的名称。 | 否 |
满足 <waitfor>
任务的可用条件与 <condition>
任务的条件相同。有关完整列表,请参见 此处。
等待最多 30 秒,直到出现名为 errors.log 的文件。
<waitfor maxwait="30" maxwaitunit="second"> <available file="errors.log"/> </waitfor>
等待最多 3 分钟(并每 500 毫秒检查一次),直到 localhost 上的 Web 服务器提供指定的 URL。
<waitfor maxwait="3" maxwaitunit="minute" checkevery="500"> <http url="https://localhost/myapp/index.html"/> </waitfor>
等待最多 10 秒,直到 dbserver 机器上的服务器开始监听端口 1521,并且 https://webserver/mypage.html 网页可用。
<waitfor maxwait="10" maxwaitunit="second"> <and> <socket server="dbserver" port="1521"/> <http url="https://webserver/mypage.html"/> </and> </waitfor>