gpt4 book ai didi

bash - GNU 并行 : --line-buffer option doesn't work with --pipe

转载 作者:行者123 更新时间:2023-11-29 09:32:26 30 4
gpt4 key购买 nike

我试图并行化一些需要实时处理的任务,所以我使用了--line-buffer。我正在处理很长的字符串,但后来我注意到有时它会达到行长度限制,从而导致 command line too long 错误,所以我决定通过管道传输它们

但是当我使用 --pipe 选项时,--line-buffer 停止工作
我用更简单的命令测试了,问题依然存在

# Returns instantly, but pass the data as args
(echo 1; echo 2; sleep 100) | parallel -j1 --lb cat
# Pass the data to STDIN, but only after 100 seconds
(echo 1; echo 2; sleep 100) | parallel -j1 --lb --pipe cat

我在 Arch Linux 上使用并行 20190422

最佳答案

# Pass the data to STDIN, but only after 100 seconds
(echo 1; echo 2; sleep 100) | parallel -j1 --lb --pipe cat

这是由于 GNU Parallel 默认读取 1 MB。所以 GNU Parallel 等待更多的输入。仅在 100 秒后 STDIN 关闭,GNU Parallel 获得 EOF。

你或许可以这样做:

(echo 1; echo 2; echo 3; sleep 100) | parallel -j1 --block 1 -N1 --lb --pipe 'date;cat'

但如果行长得多,则增加--block

关于bash - GNU 并行 : --line-buffer option doesn't work with --pipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56464124/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com