首頁 >後端開發 >php教程 >提交表單後如何在背景執行長時間運行的 PHP 腳本?

提交表單後如何在背景執行長時間運行的 PHP 腳本?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-03 02:22:09337瀏覽

How Can I Run a Long-Running PHP Script in the Background After a Form Submission?

如何在提交表單後在後台運行PHP 腳本

問題場景

考慮一個處理提交資訊的表單,將其插入到資料庫,並向訂閱者清單發送通知。但是,由於訂閱者數量眾多(約 150 個),該過程需要大量時間(超過一分鐘)。這會導致使用者遇到延遲和潛在問題:

  • 使用者可能會重複提交表單,導致重複提交或提交失敗。
  • 使用者可能會過早關閉頁面或瀏覽器,導致伺服器在瀏覽器中斷連線時繼續執行腳本。

解決方案:分離電子郵件通知

為了解決這個問題,腳本的電子郵件通知部分應分離到一個不同的文件中。但是,將此文件作為後台任務運行對於消除用戶的互動需求至關重要。

在背景執行 PHP 腳本

要將 PHP 腳本作為後台服務運行,需要外部必須使用 exec 或 shell_exec 呼叫進程。

使用 shell_exec

使用 shell_exec 允許用於記錄通知過程。以下命令將實現所需的功能:

命令末尾的 & 字元表示該進程應在後台運行。

附加說明

  • 腳本路徑後面的額外變數(用單引號括起來)可以透過後台的$_SERVER['argv'] 陣列存取
  • 後台腳本的輸出使用>> 附加到日誌檔案。運算符。

以上是提交表單後如何在背景執行長時間運行的 PHP 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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