3 个版本 (重大更改)
0.3.1 | 2021年4月19日 |
---|---|
0.2.0 | 2021年4月10日 |
0.1.0 | 2021年4月4日 |
#3 in #flock
36KB
870 行
fnq (发音为 FUNK)
用于队列 Unix 任务和进程的基于 flock 的单 CLI 方法
用法
在您的环境中设置 FNQ_DIR
以指定存储队列文件的位置。默认为 $(pwd)
$ fnq [--quiet | --clean] cmd
提示:由于 fnq
使用 FNQ_DIR
来确定队列状态,因此您可以通过更改 FNQ_DIR
来创建一个全新的队列
示例
$ export FNQ_DIR=~/.fnqdir # Can put in .bashrc for global use
$ fnq ./task1 # Can also look in PATH
fnq1617220638670.52957
$ fnq ./task2 taskarg1 taskarg2 # Queues future tasks
fnq1617221011799.53621
$ fnq -q ./task3
$ ls $FNQ_DIR
fnq1617220638670.52957 fnq1617221011799.53621 fnq1617221184552.54371
$ fnq --tap fnq1617221011799.53621 # Will check if task is running
$ fnq --block # Will block until last task finishes
标志
--quiet / -q
无 stdout
注意:任务 cmd 的 std{out,error} 仍将保存到相应的队列文件
--clean / -c
在任务完成后删除 $FNQ_DIR
中的队列文件
--block / -b<queuefile.pid>
接受一个队列输出文件以等待,否则等待/阻塞整个队列完成
--tap / -t<queuefile.pid>
接受一个队列输出文件以确定是否正在运行,否则根据整个队列是否完成来确定成功
--watch / -w<queuefile.pid>
类似于 --block
,但会打印到 stdout 当前正在运行的队列文件的内容
安装
Cargo
如果您使用的是 Cargo 的最新版本,您可以看到 cargo install
命令
$ cargo install fnq
从源代码构建
在 git 克隆此仓库后,您可以通过以下方式将其作为 cargo crate 安装:
$ cargo install --path path_to_repo
这将使 fnq
在您的 cargo crates 位于 $PATH
的任何位置都可以使用
关于
这里的大部分功能都受到了 nq (用 C 编写) 的极大启发。
此包依赖于 nix 来抽象 Unix flock 操作,因此假设 nix 在某个平台上工作,此二进制文件也应该可以工作。这里需要做的工作之一是创建一个适合在不同机器上运行的适当测试套件
在开发过程中已在 x86_64 的 Linux 上进行测试
许可证
MIT
由 Milan 维护
依赖项
~1.9–9.5MB
~86K SLoC