python pool.apply_async调用 参数为dataset的函数 不执行问题解决

一个参数的情况 加逗号!!!!!!!!!!!(格式要求)

在只有一个参数要传时 需要写成列表/元组的形式:

task_fun.apply_async(args=[value1, ]) # 需要加上逗号!
task_fun.apply_async(args=(value1, )) # 需要加上逗号!

参数通过kwargs (dict)传输

task_fun 是需要执行任务的方法,参数自定义, 通过 kwargs 将task_fun(key1, key2) 方法需要的 key1 key2 参数通过 关键字参数 传过去:

task_fun.apply_async(kwargs={‘key1’: value1, ‘key2’: value2})

通过 args 传递 位置参数(数组或元组,只有一个元素时加 ‘,’逗号)

task_fun.apply_async(args=[value1, value2])

拆分数据集使用apply_async多进程调用相关函数

from multiprocessing import Pool
pool = Pool(processes=10)
limit_num = config.get(“rules”,“Convert_limitnum”)
num = int(row_num/int(limit_num))+1
for i in range(0, num):
save_data = data.iloc[i*int(limit_num):(i+1)*int(limit_num), :] #每隔1万循环一次
pool.apply_async(func=exe_insert, args=(save_data,))
# exe_insert(save_data)
pool.close()
pool.join()

multiprocessing 中的 Queue 不能被序列化。

https://*.com/questions/45178447/multiprocessing-queue-as-arg-to-pool-worker-aborts-execution-of-worker?rq=1

multiprocessing.Queue作为arg池工作程序的中止工作程序的执行.
python pool.apply_async调用 参数为dataset的函数 不执行问题解决
python pool.apply_async调用 参数为dataset的函数 不执行问题解决