python - 如何同时运行两个python函数?
问题描述
背景
我有一个 python 脚本,可以在两个不同的环境中比较同一张表,例如生产和开发。现在的事情是比较数据,我需要同时从两个环境中获取数据。我在这里使用 Oracle 数据库。
到目前为止我的策略:
我的主要 python 脚本使用 os.startfile() 同时启动两个不同的 python 脚本。每个脚本都从它们各自的环境中获取数据,例如 fetch_prod.py 从生产中获取数据,然后将数据作为 prod_data.xlsx 保存到 excel 文件中。
我的主脚本每隔一分钟检查一次是否存在两个 excel 文件。之后它将excel读入pandas数据框并进行比较。
我想要的是
我需要在我的主脚本中并行运行这两个数据获取函数,并且需要等到它们发出已获取所有数据的信号。
解决方案
考虑使用 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
推荐阅读
- python - 来自 Keras 的 pad_sequences 的无效文字错误
- gremlin - JanusGraph - 创建索引后有关所有顶点扫描的警告
- android - Firebase AuthUI...signOut() 需要电话权限
- vue.js - 子事件发生时立即通知父组件?
- vb.net - 将 New() 入口点声明为私有的后果是什么?
- python - 向 Slack App Home 频道发布消息时缺少消息附件
- php - laravel 5.6 中的自定义登录
- rest - 如何在没有运行数据的情况下从 VSTS 中的测试套件中获取所有测试用例
- regex - 基于歧义的“评分”正则表达式
- node.js - 应该怎么做才能在不使用 sudo 的情况下加入项目的两个模块?