gpt4 book ai didi

ruby-on-rails - 在 Ruby 中并行运行命令行进程

转载 作者:行者123 更新时间:2023-12-04 03:54:37 25 4
gpt4 key购买 nike

我正在使用命令行工具 PhantomJS 来呈现网站图像,我想并行运行其中的多个,而不是一个接一个地运行。我该怎么做?

最佳答案

这是一个使用 Resque 的例子.请注意,为简洁起见,我没有进行转义...您应该永远不要将外部输入直接传递到 shell 命令中。

class RasterizeWebPageJob
@queue = :screenshots
def self.perform(url)
system("/usr/bin/env DISPLAY=:1 phantomjs rasterize.js #{url} ...")
end
end

10.times { Resque.enqueue(RasterizeWebPageJob, "http://google.com/") }

如果您正在运行足够多的工作器(并且有可用的工作器),它们将并行执行。这里重要的是您将单独的作业放入队列,而不是在一个作业中处理多个屏幕截图。

我建议不要在 Rails Controller 中使用 Thread.new。队列比线程管理起来更容易(也更安全)。

关于ruby-on-rails - 在 Ruby 中并行运行命令行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com