Ich schreibe gerade ein Skript, das eine Datenbank als Eingabe nimmt und alle gültigen Kombinationen aus den über 10 Tabellen nach bestimmten Regeln generiert. Da der Ausgang verflixt ist riesig, ich Dumping i dies durch gzip in die Datei, wie folgt aus:Wie kann ich schreiben, um eine Gzip-Datei von meinem Perl-Skript nicht blockierend?
open(my $OUT, '|-', "gzip > file");
for (@data) {
my $line = calculate($_);
print $OUT $line;
}
Aufgrund der Natur des Tieres, obwohl ich am Ende zu Hunderttausenden von kleinen schreibt zu machen, eine für jede Zeile. Das bedeutet, dass es zwischen den Berechnungen auf gzip wartet, um die Daten zu erhalten und die Komprimierung zu beenden. Zumindest denke ich, ich könnte mich irren.
Falls ich recht habe, frage ich mich, wie ich diesen Druck asynchron machen kann, d. H. Er feuert die Daten bei gzip und fährt dann mit der Verarbeitung der Daten fort.
Danke dafür! Ich bin nicht in der Nähe dieses Puffers, mit einer einzigen Pipe-Pipeline für gzip, die 850 Bytes lang ist. :) – Mithaldu