Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Menjalankan Perintah PHP Secara Asynchronously Tanpa Menyekat?

Bagaimana untuk Menjalankan Perintah PHP Secara Asynchronously Tanpa Menyekat?

Patricia Arquette
Lepaskan: 2024-12-09 12:00:25
asal
543 orang telah melayarinya

How to Run PHP Commands Asynchronously Without Blocking?

Cara Melaksanakan Perintah PHP Tanpa Menunggu Keputusan

Dalam PHP, arahan exec boleh menjalankan perintah luaran, tetapi secara lalai, PHP menunggu untuk arahan selesai sebelum meneruskan. Walau bagaimanapun, dalam senario tertentu, adalah wajar untuk memulakan arahan dan meneruskan tugas lain tanpa menunggu keputusan.

Penyelesaian:

Dokumentasi PHP menyediakan penyelesaian untuk melaksanakan arahan tanpa menyekat:

// Redirect stdout and stderr to /dev/null to suppress output
exec('run_baby_run > /dev/null 2>&1 &');
Salin selepas log masuk

Ini arahan:

  1. Melaksanakan arahan run_baby_run.
  2. Mengubah hala keluaran standard dan ralat standardnya ke /dev/null, menekan sebarang output daripada arahan.
  3. Melatarbelakangkan arahan, mencipta proses berasingan yang berjalan secara bebas daripada PHP skrip.

Penyelesaian Alternatif untuk Menyahkan Proses:

Untuk menanggalkan proses daripada utas Apache dan memastikan ia terus berjalan walaupun skrip PHP ditamatkan, gunakan arahan ini:

exec('bash -c "exec nohup setsid your_command > /dev/null 2>&1 &"');
Salin selepas log masuk

Arahan ini:

  1. Melancarkan sesi bash.
  2. Menjalankan nohup untuk menghalang proses daripada ditamatkan jika skrip panggilan keluar.
  3. Menetapkan ID sesi baharu (setsid) untuk memisahkan proses daripada yang semasa.
  4. Menindas output seperti sebelumnya.

Atas ialah kandungan terperinci Bagaimana untuk Menjalankan Perintah PHP Secara Asynchronously Tanpa Menyekat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan