使用 retry-cli 工具重试命令
通常,在控制台运行命令,如果失败,那么会直接返回非0
的退出码。有时候,可能希望在命令失败退出后,还能继续重试,直到运行成功。而 demoray/retry-cli 工具就是一个小巧的实现。
安装方法 🔗
retry-cli
是在 Github 开源的,使用 Rust 语言编写。作者并没有提供发布版本,因此需要自行编译。截至目前位置,编译retry-cli
需要 1.74
及以上的 rustc
。因此需要安装最新的 rust 工具链;或者本地版本太旧时,使用 rustup upate
更新到最新的版本。然后使用 Cargo 安装:
cargo install retry-cli
编译安装成功后,可使用 --help
选项查看使用说明:
$ retry --help
Usage: retry [OPTIONS] <COMMAND>...
Arguments:
<COMMAND>...
Options:
--retries <RETRIES> [default: 3]
--duration <DURATION> [default: 10]
--method <METHOD> [default: fibonacci] [possible values: fibonacci, fixed, no-delay]
-h, --help Print help
-V, --version Print version
使用举例 🔗
比如,我想使用如下命令运行 Tabby 服务:
tabbyml serve --model StarCoder-1B --chat-model Qwen2-1.5B-Instruct --device vulkan
在首次运行这条命令时,它会从远程下载模型。这个模型可能有好几个G的大小。出于某些原因,下载很不稳定,容易失败;但好消息是,tabby
命令可以断点续传。因此,当下载失败时,多重试几次不就好了?
于是,使用 retry-cli
运行这条命令:
retry --retries 200 tabbyml serve -- --model StarCoder-1B --chat-model Qwen2-1.5B-Instruct --device vulkan
注意,在 --model
选项前的 --
。这代表此后的选项是传给 serve
命令的;而不是传给 retry
命令。
结尾 🔗
如果查看 retry-cli
的源码,就会发现其实现相当简单。
加载中...