我正在寻找一个适用于 Linux 的轻量级任务队列管理器。在我看来,不同的进程应该将任务提交到队列,队列管理器将按照提交的顺序逐一执行它们。
有没有软件可以做到这一点。我看过 celery 和 geaman,但它们对于我目前的任务来说太繁重了。
答案1
除了任务后台处理程序,我几乎找不到任何其他可以满足此需求的东西。Tsp 很棒,但我并不总是能够在我必须工作的每台服务器上编译或安装它。
我已经为此苦苦挣扎了一段时间,经过 3 次迭代(实际上从更复杂到更简单),我想出了一个纯 bash 实现,到目前为止似乎运行良好。你可以在https://github.com/sitaramc/bq。
Bq 利用了 Unix 上的事实,“mv”(在同一个文件系统内)是一个原子操作,满足其所有的锁定需求。
它只是一个 bash 脚本,因此安装很简单。
该脚本有大量注释,如果您愿意的话,您可以在几分钟内查看它。
答案2
以前我用的是伯克利 lpd为此(在 cups 之前,它是 Linux 的默认打印系统)。尽管队列管理是作为编译守护进程实现的,但打印机接口是一个简单的 shell 脚本(通常是 ghostview 的包装器)。
它非常稳定,并提供了管理队列的工具。
答案3
batch
在系统负载水平允许时执行命令。
也许“at”已经可以解决您的要求了?
答案4
我目前使用GNU 并行像这样运行批处理,这样做的好处是我可以同时使用我有权访问的所有机器。但是,我需要能够在不同用户之间共享执行资源,并实现更好的报告。