GNU Parallel은 시작하기 전에 n개의 작업을 기다립니다.

GNU Parallel은 시작하기 전에 n개의 작업을 기다립니다.

스크립트에서 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

관련 정보