스크립트에서 GNU 병렬을 사용해 보았는데 -jX X 작업 이후에만 출력이 시작된다는 것을 알았습니다.
# Only spawns cat after 100 seconds
(echo a; sleep 100) | parallel -j1 --lb cat
# Starts instantly
(echo a; echo a; sleep 100) | parallel -j1 --lb cat
첫 번째 작업은 다른 작업보다 먼저 시작해야 합니다(다른 작업을 병렬 파이프라인으로 정의하여 출력을 다른 스크립트로 파이핑하기 때문). 그러나 병렬은 3개의 작업을 더 기다리고 있습니다.
이 패턴을 바꿀 수 있는 방법이 있나요?
답변1
20181222 이상으로 업그레이드하세요.
# Spawns a instantly
(echo a; sleep 100) | parallel -j1 --lb cat
# Starts a and b instantly, outputs a immediately, b after 100 sec
(echo a; echo b; sleep 100) | parallel -j1 --lb cat
# Starts a and b instantly, outputs a and b immediately (but output may be mixed)
(echo a; echo b; sleep 100) | parallel -j1 --lb cat