在python中并行运行代码(pika库)

2024-05-07 00:23:59 发布

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

我有一个pika接收器,它接收命令并执行另一个python脚本。问题是我无法以多进程或线程方式并行运行脚本。如果我通过mqtt协议接收到该命令,它将等待“make.py”函数完成后再次执行该命令。我想让它并行运行。有人能帮忙吗

def call_mkdt(ch, method, properties, body):
    os.system(f"make.py {body}")


def consume():
    channel.basic_consume(queue='UploadCompleted', on_message_callback=call_mkdt, auto_ack=True)
    print(' [*] ETL')
    try:
        channel.start_consuming()
    except KeyboardInterrupt:
        channel.stop_consuming()

if __name__== "__main__":
    p1 = threading.Thread(name="Hello1", target=consume)
    p1.start()

Tags: namepy命令脚本makedefchannelbody
1条回答
网友
1楼 · 发布于 2024-05-07 00:23:59

我想您不想等待make.py完成执行, 您可以从python的subprocess模块中使用subprocess.Popen函数

您可以在docs处参考有关Popen函数的更多信息

替换:

def call_mkdt(ch, method, properties, body):
    os.system(f"make.py {body}")

与:

import subprocess

def call_mkdt(ch, method, properties, body):
    subprocess.Popen(["make.py", f"{body}"])

相关问题 更多 >