首頁 >後端開發 >php教程 >如何在 PHP 中非同步執行 Shell 命令而不阻塞使用者?

如何在 PHP 中非同步執行 Shell 命令而不阻塞使用者?

Linda Hamilton
Linda Hamilton原創
2024-12-01 08:28:19628瀏覽

How Can I Asynchronously Execute Shell Commands in PHP Without Blocking the User?

使用 shell_exec 非同步執行 Shell 命令

在背景執行耗時的任務在 Web 應用程式中至關重要。例如,用戶的請求可能會觸發計算密集型過程,該過程不應阻止用戶的互動。雖然 PHP 函數 shell_exec 是執行 shell 命令的便捷方法,但它需要腳本等待命令完成,這可能會影響使用者體驗。

要解決此問題,可以對 shell_exec 呼叫進行修改。透過將“> /dev/null 2>/dev/null &”附加到命令中,可以執行命令而無需等待其完成。

以下範例示範了此技術:

shell_exec('php measurePerformance.php 47 844 [email protected] > /dev/null 2>/dev/null &');

請注意,此修改也會丟棄指令的標準輸出和標準錯誤流。如果需要擷取輸出,可以考慮替代技術,例如使用程式控制區塊 (PCB) 或實作守護程式。

以上是如何在 PHP 中非同步執行 Shell 命令而不阻塞使用者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn