我下面有一个代码,该代码进行mysql调用以获得我需要请求的报告列表。然后,它调用另一个函数“ call_report”以请求报告。 call_report函数的CPU不足,并且大多数情况下等待报告返回。我想同时运行for循环的多个实例,但无法弄清楚如何实现在report_to_run中的行上进行迭代的池。
cursor.execute("SELECT * FROM tbl_rpt_log")
reports_to_run = cursor.fetchall()
for row in reports_to_run :
user=(row[0])
report=(row[1])
run_interval=(row[3])
call_report(report, user)
答案 0 :(得分:1)
使用Pool
的一般技巧是创建一个包装器函数,该包装器函数根据需要获取输入,将其转换为实际函数所需的输入,然后调用它。像这样:
def report_on_row(row):
user = row[0]
report = row[1]
run_internal= row[3]
return call_report(report, user)
现在,您可以使用map
在每一行上调用此包装器函数:
pool.map(report_on_row, reports_to_run)