首页 > 解决方案 > 如何同时运行两个python函数?

问题描述

背景

我有一个 python 脚本,可以在两个不同的环境中比较同一张表,例如生产和开发。现在的事情是比较数据,我需要同时从两个环境中获取数据。我在这里使用 Oracle 数据库。

到目前为止我的策略:

我的主要 python 脚本使用 os.startfile() 同时启动两个不同的 python 脚本。每个脚本都从它们各自的环境中获取数据,例如 fetch_prod.py 从生产中获取数据,然后将数据作为 prod_data.xlsx 保存到 excel 文件中。

我的主脚本每隔一分钟检查一次是否存在两个 excel 文件。之后它将excel读入pandas数据框并进行比较。

我想要的是

我需要在我的主脚本中并行运行这两个数据获取函数,并且需要等到它们发出已获取所有数据的信号。

标签: pythondatabasemultithreadingparallel-processing

解决方案


考虑使用 python多处理模块。

你可以运行这样的东西:

from multiprocessing import Process

def read_db1(some_arg):
    pass
    # Do Something

def read_db2(some_arg):
    pass
    # Do Something

def main():
    db1_proc = Process(target=read_db1, args=('bla',))
    db1_proc.start()

    db2_proc = Process(target=read_db2, args=('bla',))
    db2_proc.start()

    db1_proc.join()
    db2_proc.join()

    # Do something now that both processes are done

推荐阅读