为什么python多处理异步不调用函数

2024-09-28 21:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始使用多处理,但池有问题,因为没有调用我的函数,我找不到案例C中的哪个错误,其他案例没有问题,在我的代码下面:

import imp
import multiprocessing as mp

mysql_q_mps = imp.load_source('mysql_q_mps', '\\path\\get_query_mps.py')

if __name__ ==  '__main__':

    def get_query_ps(tipo,sql_info,log_filename):
        pool = mp.Pool()      
        cola_logfile=mp.Queue()


        idx_ps = 1

        # Case A, This one works#
        mysql_q_mps.get_query_sps(tipo,sqls_exe,idx_ps,cola_logfile)

        # Case B, This one works#
        cola_1=mp.Process(target=mysql_q_mps.get_query_sps,args=(tipo,sqls_exe,idx_ps,cola_logfile))
        cola_1.start()   

        # Case C, This one does not works#
        pool.apply_async(mysql_q_mps.get_query_sps,(tipo,sqls_exe,idx_ps,cola_logfile)) 

        return    

    log_path='//pathlogfile'
    sqls_exe = 'SQLQuery'

    get_query_ps('exe',sqls_exe,log_path)

Tags: pathloggetmysqlmpqueryexemps