Ich habe eine Tabelle URL_Experiment
in meiner Datenbank ( mySQL-Datenbank ). Ich habe 2 Millionen URL-Links in dieser Tabelle.
Für jede URL überprüfe ich, ob ein bestimmter Text in der URL vorhanden ist, und aktualisiere die Informationen wieder in meiner URL_Experiment
Tabelle.
Jetzt muss ich das Skript schnell laufen lassen. Die einfache Lösung, die mir in den Sinn kommt, ist:
Teilen Sie die URL_Experiment
in 10 Tabellen (jeweils mit 200.000 Zeilen) auf und führen Sie das Skript 10 Mal gleichzeitig aus. Auf diese Weise kann ich sicherstellen, dass die Aktualisierungen ordnungsgemäß durchgeführt werden. Dafür muss ich jedoch 10 Skripte speichern, die jeweils auf die richtige Tabelle zugreifen (ich muss die Tabellen von 1 auf 10 umbenennen).
Obwohl das oben Genannte eine ziemlich nette Lösung zu sein scheint, suche ich nach einer anspruchsvolleren Lösung. Etwas, das dasselbe Skript gleichzeitig (parallel) wie 10 Prozesse ausführt. Mein Anliegen ist die Ausführungszeit. Ich möchte nicht, dass die Ressourcen verschwendet werden, wenn sie genutzt werden können.
quelle
Antworten:
Sie können GNU parallel ausprobieren. Viele Beispiele finden Sie hier und hier .
Ich bin Mitglied des Swift- Teams und wir machen genau diese Dinge für große Forschungsprojekte.
quelle
mysql -e 'select ...' | parallel --pipe -j10 --round-robin ./scriptname.sh