同时运行单个python方法多次

问题描述 投票:-1回答:1

我有一个采用一个参数并发布到主机的方法。

def fts(searchstring):
    search_string="\""+searchstring+"\""
    headers = {'Content-Type': 'application/json',}
    data = '{ "explain": true,"fields": ["*"],"highlight": {},"query": { "query": '+search_string+'},"size":0}'
    response = requests.post('hostname', headers=headers, data=data, auth=('uname', 'password'))
    if response.status_code != 200:
        raise Exception("{} - {}".format(response.status_code, response.text))
    print(response.json())

我想使用不同的参数同时在多个进程中运行此方法。这可能吗?我尝试使用多处理程序,但无法获得它。谢谢

python multithreading post multiprocessing
1个回答
0
投票

代码pool.map(fts, searchstring)将同时运行,但会将searchstring视为字符列表,并将每个单个字符发送到不同的fts

您需要列出所有字符串

all_results = pool.map(fts, [searchstring1, searchstring2, searchstring3, ...])

BTW:如果您需要发送更多参数,则需要包含元组或子列表的列表。

all_results = pool.map(fts, [(searchstring1, param1), (searchstring2, param2), ...])

并将函数定义为

def fts(args):
    searchstring, param = args
© www.soinside.com 2019 - 2024. All rights reserved.