Grinder语言 - 如何从文件分发URL的调用



我们有一个巨大的不同网址的文件(~500K - ~1M urls(。
我们希望使用 Grinder 3 将这些 URL 分发给 Workers,以便每个 worker 都会调用一个不同的 URL。

在 JY 脚本中,我们可以:

  • 每个代理读取文件一次

  • 为每个代理分配行号范围

  • 每个工作线程都会根据其运行 ID 从其代理行号范围获得一个行/URL。

这仍然意味着将一个巨大的文件加载到内存中,并为许多人可能常见的问题编写一些代码。

更简单/现成的解决方案有什么想法吗?

不久

前我以类似的方式使用了 Grinder,并编写了一个用于从大文件中一次性摄取 URL 的多线程实用程序。

请参阅 https://bitbucket.org/travis_bear/file_util - 特别是顺序读取器。

我建议在执行 Grinder 运行之前使用 split 命令行实用程序(或类似工具(为每个代理提供单独的主文件块。

如果您愿意,我会采取不同的方法,因为它是一个大文件,您计划生成多少个线程.我相信你已经知道你可以得到Grinder.ThreadNo来获取当前正在执行的线程。您实际上可以使用具有相等记录数的预处理器将文件划分为线程数,并将它们命名为与线程名称匹配的 0、1、2 等。

为什么我建议这样做是处理文件看起来像一个预任务,重要的是它的内容。线程正在执行时,文件处理不应干扰。

所以现在每个线程都有自己的文件,没有冲突。

例如 20 个线程

20 个文件,但是您的线程数应仔细选择,可能是峰值 + 50 %。

相关内容

  • 没有找到相关文章

最新更新