有没有好的队列处理工具/库,具有良好的监控/管理界面?

有没有好的队列处理工具/库,具有良好的监控/管理界面?

我正在尝试运行一个实验,涉及通过这样的管道转换大量文件。 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 的限制?)。

我对这些工具不是很熟悉,所以如果我问了一些愚蠢的问题,我很抱歉。

相关内容