Subprozess gegen Asyncio für asynchrone PostgreSQL -Abfragen
Posted: 22 May 2025, 23:38
Ich möchte eine Reihe von Vorgängen in einer PostgreSQL -Datenbank ausführen. Diese Operationen führen eine Auswahl auf einer Tabelle aus und fügen die resultierenden Zeilen in eine neue Tabelle ein, die Primärschlüssel aufweist, wobei Zeilen ignoriert werden, die gegen die primären Schlüsselbeschränkungen verstoßen. Es gibt eine große Anzahl großer Tabellen in der Datenbank, und es scheint, dass diese Art von Aufgabe asynchron ausgeführt werden sollte.
Es ist mir einzuschlagen, dass eine Möglichkeit, dies zu tun, das Subprozess -Modul in Python verwenden würde, um Bash -Skripte auszuführen, die diese Operationen ausführen, wobei etwas wie subprocess.popen verwendet wird. Ich kann viele Terminalsitzungen öffnen und parallele Abfragen ausführen. Nach meinem Verständnis ist dies dies nachahm, dies imitieren. < /p>
, um ein Beispiel von hier auszuleihen: < /p>
in Betracht ziehen? Bietet es Vorteile der oben diskutierten Methode?
[/list]
Es ist mir einzuschlagen, dass eine Möglichkeit, dies zu tun, das Subprozess -Modul in Python verwenden würde, um Bash -Skripte auszuführen, die diese Operationen ausführen, wobei etwas wie subprocess.popen verwendet wird. Ich kann viele Terminalsitzungen öffnen und parallele Abfragen ausführen. Nach meinem Verständnis ist dies dies nachahm, dies imitieren. < /p>
, um ein Beispiel von hier auszuleihen: < /p>
Code: Select all
from subprocess import Popen, PIPE
import glob
f_list = glob.glob('./*bz2')
cmds_list = [['./bunzip2_file.py', file_name] for file_name in f_list]
procs_list = [Popen(cmd, stdout=PIPE, stderr=PIPE) for cmd in cmds_list]
for proc in procs_list:
proc.wait()
< /code>
Meine Fragen sind: < /p>
[list]
[*] Gibt es offensichtliche Probleme beim Aufrufen vieler Postgres -Abfragen mit Subprozess < /code>?
[*] Unter welchen Umständen kann ich stattdessen Asyncio
[/list]