Tôi đang chạy nhiều cat | zgrep
lệnh trên một máy chủ từ xa và thu thập sản lượng của họ riêng để chế biến tiếp:Python: thực hiện mèo subprocess song song
class MainProcessor(mp.Process):
def __init__(self, peaks_array):
super(MainProcessor, self).__init__()
self.peaks_array = peaks_array
def run(self):
for peak_arr in self.peaks_array:
peak_processor = PeakProcessor(peak_arr)
peak_processor.start()
class PeakProcessor(mp.Process):
def __init__(self, peak_arr):
super(PeakProcessor, self).__init__()
self.peak_arr = peak_arr
def run(self):
command = 'ssh remote_host cat files_to_process | zgrep --mmap "regex" '
log_lines = (subprocess.check_output(command, shell=True)).split('\n')
process_data(log_lines)
này, tuy nhiên, kết quả trong thực hiện tuần tự của các tiến trình con ('ssh ... lệnh ...). Đỉnh thứ hai chờ đầu tiên kết thúc và vân vân.
Làm cách nào để tôi có thể sửa đổi mã này để các cuộc gọi subprocess chạy song song, trong khi vẫn có thể thu thập đầu ra cho từng cá nhân?
'--mmap' là vô ích khi đọc từ một đường ống ... – twalberg