Оператор "Mix" не ожидает завершения процессов в восходящем направлении
У меня есть несколько процессов верхнего уровня, скажем, A, B и C, выполняющих аналогичные задачи. После этого у меня есть один процесс X, который должен обрабатывать все выходы A, B и C одинаково.
Я попытался использовать оператор "mix" для создания одного канала из выходных файлов A, B и C, например:
process A {
output:
file outA
}
process B {
output:
file outB
}
process C {
output:
file outC
}
inX = outA.mix(outB,outC)
process X {
input:
file inX
"myscript.sh"
}
Процесс A часто завершается раньше, чем B и C, и каким-то образом процесс X не ожидает завершения процессов B и C и принимает только выходные данные A в качестве входных данных.
1 ответ
Следующий фрагмент отлично работает:
process A {
output:
file outA
"""
touch outA
"""
}
process B {
output:
file outB
"""
touch outB
"""
}
process C {
output:
file outC
"""
touch outC
"""
}
inX = outA.mix(outB,outC)
process X {
input:
file inX
"echo myscript.sh"
}
Если вы продолжаете испытывать ту же проблему, не стесняйтесь открыть проблему, включая воспроизводимый контрольный пример.