Ich muss Protokolldateien (.CSV) mit fastercsv lesen und den Inhalt in einer Datenbank speichern (jeder Zellenwert ist ein Datensatz). Die Sache ist, es gibt etwa 20-25 Log-Dateien, die täglich gelesen werden muss und diese Log-Dateien sind wirklich groß (jede CSV-Datei ist mehr als 7Mb). Ich hatte den Leseprozess geforkt, damit der Benutzer nicht lange warten muss, aber das Lesen von 20-25 Dateien dieser Größe dauert immer noch (mehr als 2 Stunden). Jetzt möchte ich das Lesen jeder Datei aufspalten, d.h. es werden etwa 20-25 Kindprozesse erstellt, meine Frage ist, kann ich das tun? Wenn ja, wird es die Leistung beeinträchtigen und ist fastercsv in der Lage, dies zu bewältigen? ex:
for report in @reports
pid = fork {
.
.
.
}
Process.dispatch(pid)
end
PS: Ich benutze Rails 3.0.7 und seine gehen, um in Server, die in Amazon's große Instanz (7,5 GB Arbeitsspeicher, 4 EC2 Compute Units (2 virtuelle Kerne mit 2 EC2 Compute Units jeweils), 850 GB der lokalen Instanz Speicher, 64-Bit-Plattform) ausgeführt wird passieren