首页 > 解决方案 > Shell + Python 文件读/写问题的并行化

问题描述

我有一个项目,我必须定期使用一个对文件进行一些预处理的 shell 脚本。根据项目要求和遗留原因,必须以这种方式完成 - 我继承了大部分代码。

处理完这些文件后,输出文件将由 Python 脚本进一步处理。

有什么好的方法可以并行运行吗?现在,这就是我的工作流程的样子。

Call shell script, processing thousands of files.
Once finished, call Python script, processing even more files.
Once finished, call SQL script to insert all of these files into a database.

如果可以将一组(一个文件shell --> Python --> SQL)并行化或并行化每个任务(Parallel shell、Parallel Python、Parallel SQL),那就太好了。我读过的所有内容似乎都暗示这是一场后勤噩梦,因为遇到了 R/W 问题。这是真的吗?如果不是正确的方向吗?

标签: pythonbashparallel-processing

解决方案


对于 shell,您可以使用 xargs 并行运行多个进程。

例子:

echo dir1 dir2 dir3 | xargs -P 3 -I NAME tar czf NAME.tar.gz NAME

关键-P- 说 xargs 运行 3 个并行进程。

对于 python,您可以使用ThreadPoolExecutor!从期货。

对于 SQL 我什么都说不出来,我需要看看你使用的是哪个数据库。


推荐阅读