蚂蚁等待的时间比它需要的要长

  • 本文关键字:等待 时间 蚂蚁 ant
  • 更新时间 :
  • 英文 :


在运行exec任务之前,我使用Ant等待URL可访问,但它等待的时间比我希望的要长得多。

我的waitfor-

<waitfor maxwait="3" maxwaitunit="minute" checkevery="500">
    <http url="http://127.0.0.1:${product.listenport}/start/"/>
</waitfor>

几乎当我在终端上看到这个输出时,我就在浏览器中加载URL并按预期获得页面,Ant仍然在等待(甚至可能比maxwait值还要长)。

这个实现有问题吗?

在第一次检查之前,您可能需要插入一个短延迟(根据声音,几秒钟就足够了)。我怀疑Ant第一次尝试获取URL的时间太快,并且在第一次获取期间(在waitfor有机会等待半秒钟并重试之前)由于某种原因挂起了

<sleep seconds="5" />
<waitfor maxwait="3" maxwaitunit="minute" checkevery="500">
    <http url="http://127.0.0.1:${product.listenport}/start/"/>
</waitfor>

我刚才也遇到了这个问题。我试着用等待作为一种ping

我们的一些单元测试需要数据库连接才能正确执行,我们在公司服务器上有这个数据库。如果我没有连接到该服务器,我不希望测试尝试和运行,因为这些任务只是挂起等待服务器,我无法判断它是在运行测试还是只是在等待连接。当我意识到后者的时候,已经浪费了相当多的时间。我必须连接到服务器,然后重新运行测试。所以我在寻找一种快速的Ping任务,如果没有连接到服务器,它就会失败。这是我的解决方案。

<limit maxwait="10" maxwaitunit="second" failonerror="true">
   <waitfor maxwait="20" maxwaitunit="second">
      <socket server="myserver" port="5432"/>
    </waitfor>
</limit>

端口5432用于postgresql,但您可以检查适合您任务的端口。

尝试将checkeveryunit添加到您的块中,它应该可以做到这一点:

<waitfor maxwait="3" maxwaitunit="minute" checkevery="5" checkeveryunit="second">
   <http url="http://127.0.0.1:${product.listenport}/start/"/>
</waitfor>

这样,您就不会等待500秒并通过maxwait

相关内容

  • 没有找到相关文章

最新更新