当前位置: 首页 > 知识库问答 >
问题:

使用等待块使代理等待,直到条件为true

傅阿苏
2023-03-14

我使用等待块使代理等待,直到条件为真(资源空闲)。我尝试在等待块“输入”字段中写入以下内容:

if(resourcePool1.idle()> 0){ self.free(agent); }

问题是,如果资源变得繁忙,代理将被困在等待块中,不会被释放,即使条件再次变为真。然后,当下一个代理进入等待块时(条件再次变为真),它将传递原本在它前面的代理,但现在被卡住了。有办法解决这个问题吗?

共有1个答案

益泰平
2023-03-14

你所做的是正确的,但你遗漏了一些东西。

除此之外,您还需要在resourcePool onrelease操作中执行类似的操作

if(wait.size()>0)
wait.free(wait.get(0));

然后,每当资源空闲时,您可以从该等待块中释放代理(如果有)

 类似资料:
  • 我第一次做硒测试。在主页上,我调用了一些AJAX,我希望Selenium等待元素加载完成。我不确定它是否有效,但我只是键入selenium,waitForCondition可以选择。 无论我选择什么,它总是返回“false”。我现在连等待条件都不工作吗? 我如何测试它是否有效?在这些代码中我做错了什么? 如果由自己的类实现,则返回“true” isElementPresent(By.xpath(“

  • 我使用这段代码点击下拉列表: 我得到错误可能是因为有一个显示登录栏的层。之后,该元素被禁用,代码抛出异常。 是否可以实现一个等待元素不被禁用的listen?

  • 问题内容: 如何让我的代码等待,直到DispatchQueue中的任务完成?是否需要任何CompletionHandler或其他东西? 我正在使用Xcode 8.2并在Swift 3中编写。 问题答案: 使用s可以实现这一点。您可以在群组和通话达到平衡时得到通知: 或者您可以等待: 注意 :阻止当前队列(在您的情况下可能是主队列),因此您必须在另一个队列上(如上面的示例代码中)以避免 死锁 。

  • 我正在尝试将数据库调用移出控制器,以清理并使其可测试。当它们在控制器中时,一切都会顺利进行。我将它们移出控制器,并添加了一个异步,以确保我们等待。否则,我将调用的中的函数。现在,一旦我使用async/await,控制器中的函数就会认为没有用户,因为它没有等待。 有几个关于异步等待的SO问题,但我没有找到一个解决我的问题。我确实验证了返回了我的用户,并添加了控制台日志来显示路径。 节点猫鼬异步等待似

  • 问题内容: 我在中进行以下设置: 我正在使用包装将它们连接在一起。 这是传输层: 以及管道配置: 在中使用结果 如果我使用较大的连接尝试次数或增加连接重试次数来手动启动服务器,则该服务器最终将正常工作。如果我启动logstash并且过一会儿启动节点容器,它也可以工作。 问题在于,显然这不是一个好习惯,我无法猜测启动将花费多长时间,并且其中的指令根本没有帮助。 我需要一种方法来知道什么时候准备好,然

  • 我想等待页面完全加载。我知道我可以通过等待页面元素加载来做到这一点。 但是我想要更通用的东西,我假设可以使用Favicon来确定页面是否已完全加载。 如何使用Selenium Webdriver确定FavIcon是否已加载到页面中? “我知道这只是你的HTML源代码中的另一个元素。但是如果你查看任何网页上的页面加载,Favicon将是最后一个被加载的。如果有一种方法可以等到Favicon加载到网页