将foreach中的群组操作转换为并行块

时间:2017-02-25 19:37:50

标签: gatling

我有一个很好的场景,我通过RESTful API从数据库中检索1000个文档。

然后我修改文档并为每个文档发送更新请求。

这就是我目前正在做的事情:

...
val scrollQueries = scenario("Enrichment Topologies").exec(ScrollQueryInitiator.query, repeat(numberOfPagesToScrollThrough, "scrollQueryCounter"){
    exec(ScrollQuery.query, pause(10 seconds).foreach("${hitsJson}", "hit"){ exec(HitProcessor.query) })
})
...

以下是感兴趣的主要特征:

  1. ScrollQuery.query获取1000个结果并将其保存到会话中的hitsJson
  2. 然后暂停10秒钟以模拟长期处理。
  3. 迭代1000个结果,每个项目运行HitProcessor,发送更新请求
  4. 实际上,foreach循环确保每个请求一个接一个地发送。

    问题

    我真正想要的是以10个为一组完成1000个结果,一次发送10个并行更新请求。

    我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

尝试将获取部分移至hook之前。

现在您已拥有数据,您可以启动10个线程

setUp(  scn.inject(atOnceUsers(10)))