使用 retry-cli 工具重试命令

2024-07-17#cli#TabbyML

通常,在控制台运行命令,如果失败,那么会直接返回非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源码,就会发现其实现相当简单。


加载中...