Wie führe ich ein Slave-Skript asynchron in Python mit nicht blockierendem Prozessaufruf aus?

DDD
Freigeben: 2024-10-19 13:47:29
Original
633 Leute haben es durchsucht

How to Run a Slave Script Asynchronously in Python using Non-Blocking Process Invocation?

Nicht blockierender subprocess.call

In diesem Szenario möchten Sie ein Slave-Skript (slave.py) asynchron von einem übergeordneten Skript (main.py) aufrufen . Insbesondere möchten Sie, dass Slave.py unabhängig von Main.py ausgeführt wird, nachdem es bei seiner ersten Ausführung Argumente von Main.py erhalten hat.

Um nicht blockierendes Verhalten zu erreichen, sollten Sie subprocess.Popen anstelle von subprocess.call verwenden . Der Hauptunterschied besteht darin, dass subprocess.call auf den Abschluss des Befehls wartet, bevor er fortfährt, während subprocess.Popen dies nicht tut.

Hier ist ein Beispiel für die Verwendung von subprocess.Popen:

import subprocess

# Pass the arguments from main.py to slave.py
arguments = ['python', 'slave.py'] + sys.argv[1:]

# Launch slave.py as a non-blocking process
process = subprocess.Popen(arguments)
Nach dem Login kopieren

Jetzt main .py kann seine Ausführung fortsetzen, während Slave.py unabhängig ausgeführt wird.

Zusätzliche Hinweise:

  • Verwenden Sie keine Liste, um die Argumente zu übergeben, wenn Sie Verwenden Sie Shell=True.
  • Alternativ können Sie Asyncio für Coroutine-basierte Parallelität nutzen. Einzelheiten finden Sie im Beispiel in der Originalantwort.

Das obige ist der detaillierte Inhalt vonWie führe ich ein Slave-Skript asynchron in Python mit nicht blockierendem Prozessaufruf aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!