我是 fabric
API的新手,我现在就在那里 . 目前,下面的位在三台主机上的每台主机上并行正确运行脚本 get_num_reviews_aws.py
.
hosts = [ubuntu@54.xxx.xx.xx,
ubuntu@52.xx.xxx.xx,
ubuntu@54.xx.xxx.xx]
#%%
from fabric.api import run, parallel
from fabric.tasks import execute
%%
@parallel
def webscraper():
run("python get_num_reviews_aws.py")
#%% run on hosts
execute(webscraper, hosts=hosts)
我正在寻找的是能够将命令行参数传递给python脚本,这些参数对于每个主机都是不同的,但仍然可以并行运行 . 所以像这样:
@parallel
def webscraper(start, end):
run("python get_num_reviews_aws.py %s %s" % (start, end))
然后基本上每个主机都有一组不同的 start
和 end
. 什么's hanging me up is I pass a list of hosts but I don' t我认为我为每个命令行参数传递一个列表,例如:
start = [1, 2, 3]
end = [4, 5, 6]
execute(webscraper, start, end, hosts=hosts)
1 回答
在看了一些其他的similar questions on SO后,这对我有用 .