Python Mutiprocessing.pool passing row of touple



我在下面有一个代码,它进行mysql调用以获取我需要请求的报告列表。 然后,它调用另一个函数"call_report"来请求报告。 call_report函数的 CPU 使用率较低,主要等待报告返回。 我想同时运行 for 循环的多个实例,但无法弄清楚如何在 reports_to_run 中迭代行的地方实现 pool。

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)    

使用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)

相关内容

  • 没有找到相关文章

最新更新