Python 使用多处理在进程内按顺序运行多个函数

Python 使用多处理在进程内按顺序运行多个函数,python,multiprocessing,Python,Multiprocessing,我是多处理方面的新手 我试图实现的是使用多处理在一个进程内按顺序运行多个函数 例如: 我有5个数据帧需要插入到5个单独表中的数据库中。 在插入之前,我要检查数据格式是否正确,列顺序是否正确,以及数据质量的简要检查。 假设我已经编写了4个函数,即correct\u data\u format(),column\u order()和data\u quality()。还添加一个insert_db()函数 我想为每个数据帧运行这4个函数 在我看来,每个数据帧应该有5个不同的进程,每个进程应该按照上述4个

我是多处理方面的新手

我试图实现的是使用多处理在一个进程内按顺序运行多个函数

例如:

我有5个数据帧需要插入到5个单独表中的数据库中。 在插入之前,我要检查数据格式是否正确,列顺序是否正确,以及数据质量的简要检查。 假设我已经编写了4个函数,即
correct\u data\u format()
column\u order()
data\u quality()
。还添加一个
insert_db()
函数

我想为每个数据帧运行这4个函数

在我看来,每个数据帧应该有5个不同的进程,每个进程应该按照上述4个函数的顺序运行(
correct\u data\u format()
->
column\u order
->
data\u quality
->
insert\u db


如何使用
多处理
包实现这一点?

假设您有5个数据帧df1、df2、df3、df4和df5。 以下代码可能会执行您想要的操作:

import multiprocessing

def func(df):
    correct_data_format(df)
    column_order(df)
    data_quality(df)
    insert_db(df)
    ...
    [some other stuff]

pool = multiprocessing.Pool()
pool.map(func, (df1, df2, df3, df4, df5))
    

您可以使用multiprocessing.Pool,定义一个在数据帧上工作的函数,执行所有需要的检查并返回True/False,然后使用Pool.map方法,如果我不想将所有函数包装成一个函数,可以吗?有可能实现我所描述的吗?Pool.map不适用于lambda函数,因此您必须定义一些函数或类。也许有一种方法我不知道与其他一些api的多处理