我认为并行 - 重试并不像预期的那样有效。这是一个简单的测试用例:
parallel -p -u -j 1 --retries 5 cat ::: some.file
当我在'some.file'存在时运行它,它会读取内容一次然后并行关闭(这是好的,只有一次调用,因为第一次成功)。当我在没有'some.file'的情况下调用它时,在第一次迭代之后我得到输出“cat:some.file:没有这样的文件或目录” - 这正是我所期望的。但是,如果同时另一个进程创建“some.file”(在“并行”命令执行期间,但在第一次失败的'cat'调用之后),在下一次迭代期间我得到所需的输出:文件中存在的文本,但是,cat的下一次迭代也会被触发 - 这可能会导致4个成功的命令调用(本例中为cat)。
我希望并行运行给定命令达N次( - retries N),但是在成功执行之后我不希望再进行调用。我做错了什么还是有错误?
parallel --version:
GNU parallel 20130922