并行运行ruby脚本

时间:2018-09-14 13:57:14

标签: ruby parallel-processing

假设我有两个ruby脚本-a.rb和b.rb。两者都是用于不同页面的网络抓取工具。它们可以工作很多小时,我想同时运行它们。为此,我尝试使用“ promise” gem通过以下代码通过第三个脚本运行它们:

def method_1
require 'path to my file\a'
end
def method_2
require 'path to my file\b'
end
require 'future'
x=future{method_1}
y=future{method_2}
x+y

但是,此解决方案会引发错误(如下),并且仅执行一个脚本。

An operation was attempted on something that is not a socket. 
(Errno::ENOTSOCK)

我还尝试过Thread类:

def method_one
require 'path to my file\a'
end

def method_two
require 'path to my file\b'
end

x = Thread.new{method_one}
y = Thread.new{method_two}

x.join
y.join

它给了我与“承诺”宝石相同的错误。

我也已经在单独的shell中运行了这些脚本,然后它们可以同时工作,但是性能却差得多(大约慢50%)。 是否可以同时运行它们并保持高性能?

0 个答案:

没有答案