Fel*_*rez 5 parallel-processing gnu-parallel
我想这个问题/问题可以通过满足以下一个(或多个)问题来解决
1) 如何显示剩余的工作?2)我如何漂亮的输出--eta
1) 我已经检查了手册页,我目前在我的函数中使用 $PARALLEL_SEQ,但是我怎样才能获得剩余的工作?Parallel 帮助我编译了大约 800 个文件,我想知道我的剩余工作。
2)或者,有没有更好(更好)的输出方式--eta?我的输出看起来很乱。我只想看到一个 ETA。
我使用的并行标志: --no-notice --keep-order --group
输出示例:
819: Compiling form: USER_Q ok
ETA: 8s 13left 0.61avg local:4/819/100%/0.6s
820: Compiling form: USER_RESERVE_STOCK ok
ETA: 7s 12left 0.61avg local:4/820/100%/0.6s
821: Compiling form: USERS_AUTO ok
ETA: 7s 11left 0.61avg local:4/821/100%/0.6s
822: Compiling form: USERS ok
ETA: 6s 10left 0.61avg local:4/822/100%/0.6s
823: Compiling form: USERS_MENU ok
ETA: 6s 9left 0.61avg local:4/823/100%/0.6s
824: Compiling form: USER_SUPP ok
ETA: 4s 8left 0.61avg local:4/824/100%/0.6s
825: Compiling form: VARIANCE_L ok
ETA: 4s 7left 0.61avg local:4/825/100%/0.6s
826: Compiling form: VAR_L ok
ETA: 3s 6left 0.61avg local:4/826/100%/0.6s
827: Compiling form: WASTE ok
ETA: 3s 5left 0.61avg local:4/827/100%/0.6s
828: Compiling form: WASTE_L ok
ETA: 2s 2left 0.61avg local:2/830/100%/0.6s
829: Compiling form: WEATHER ok
Run Code Online (Sandbox Code Playgroud)
您需要重定向作业的输出以使 --eta 看起来不错:
seq 10 | parallel --eta 'echo foo; sleep .{}' >/dev/null
Run Code Online (Sandbox Code Playgroud)
这也将显示剩余的工作岗位数量。您可能还会发现 --bar 可用:
seq 10 | parallel --bar 'echo foo; sleep .{}' >/dev/null
Run Code Online (Sandbox Code Playgroud)
或者一个更高级的例子:
seq 1000 |
parallel -j30 --bar '(echo {};sleep 0.3)' \
2> >(perl -pe 'BEGIN{$/="\r";$|=1};s/\r/\n/g' |
zenity --progress --auto-kill) | wc
Run Code Online (Sandbox Code Playgroud)