【问题标题】:How to run two python functions at same time?如何同时运行两个python函数?
【发布时间】:2021-07-20 11:15:29
【问题描述】:

背景

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

到目前为止我的策略:

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

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

我想要什么

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

【问题讨论】:

  • 到目前为止你尝试过什么?给我们看一些代码!
  • 由于大部分延迟与网络/数据库有关,我可能会选择异步编程。

标签: python database multithreading parallel-processing


【解决方案1】:

考虑使用 python multiprocessing 模块。

你可以这样运行:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多