Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Menjalankan Skrip Hamba Secara Asynchronous dalam Python menggunakan Invocation Proses Tidak Menyekat?

Bagaimana untuk Menjalankan Skrip Hamba Secara Asynchronous dalam Python menggunakan Invocation Proses Tidak Menyekat?

DDD
DDDasal
2024-10-19 13:47:29760semak imbas

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

Subproses.panggilan tanpa menyekat

Dalam senario ini, anda berhasrat untuk menggunakan skrip hamba (slave.py) daripada skrip induk (main.py) secara tidak segerak . Khususnya, anda mahu slave.py dijalankan secara bebas daripada main.py selepas menerima hujah daripada main.py semasa pelaksanaan awalnya.

Untuk mencapai kelakuan tidak menyekat, anda harus menggunakan subprocess.Popen dan bukannya subprocess.call . Perbezaan utama ialah subprocess.call menunggu arahan selesai sebelum meneruskan, manakala subprocess.Popen tidak.

Berikut ialah contoh menggunakan 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)

Sekarang, utama .py boleh meneruskan pelaksanaannya semasa slave.py berjalan secara bebas.

Nota Tambahan:

  • Jangan gunakan senarai untuk menghantar argumen jika anda' menggunakan semula shell=True.
  • Sebagai alternatif, anda boleh memanfaatkan asyncio untuk selari berasaskan coroutine. Lihat contoh yang disediakan dalam jawapan asal untuk butiran.

Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Skrip Hamba Secara Asynchronous dalam Python menggunakan Invocation Proses Tidak Menyekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn