我正在尝试运行一个实验,涉及通过这样的管道转换大量文件。 A 和 B 将一个文件作为输入并通过 stdout 生成一个文件或一些文本。 C 获取这些输入并将它们放入数据库中。 (A、B 和 C 是本地 CLI 程序,而不是服务器。)
File ---------> A ----->
| C ---> Database
+---> B ----->
我想:
- 将数千个文件排队并通过此管道并行处理它们
- Web UI(或一些人性化的 CLI)允许我
- 监视进度,即已处理/失败的任务数量(任务 = 每个输入文件的上述管道的实例)
- 检查失败的任务(输入、错误日志等)
- 手动重新排队失败的任务(我不需要自动重试)
- (可选)暂停/恢复/清空队列(不需要能够暂停正在进行的任务)
(请注意,每个任务中的 A 和 B 不需要并行运行,并且任务调度程序不必了解管道的结构。我可以在一个简单的顺序 bash 脚本中编写整个管道,该脚本需要文件名作为参数,只需为每个输入文件安排脚本)
对于这个用例,有什么好的免费开源 CLI 程序或库(最好是 python 的)吗?
我检查了 Airflow,但似乎它是用于重复运行完全相同的静态任务(DAG),而不是用于通过单个 DAG 处理许多不同的文件...我也在尝试 Dramatiq,但似乎没有允许您轻松地重新运行失败的任务(这可能更多是 RabbitMQ 的限制?)。
我对这些工具不是很熟悉,所以如果我问了一些愚蠢的问题,我很抱歉。