項目中需要用到定時執行,但是定時的時間是一個變數參數,不是固定的
開始考慮使用crontab來實現,但是時間參數沒辦法自訂,還需要獲得一個傳遞的ID來執行sleep後的程式
使用php中的sleep函數碰到一個問題,在sleep之前GET或者POST過來的參數,在sleep之後擷取不到。
ignore_user_abort(); //即使Client斷開(如關掉瀏覽器),PHP指令碼也可以繼續執行. set_time_limit(0); // 執行時間為無限制,php預設執行時間是30秒,可以讓程式無限制的執行下去 $interval=$_GET['interval']; // 接收$_GET參數$id = $_GET['id']; //這裡是請求觸發的時候傳遞過來的ID,在sleep後需要用到flush(); sleep($interval); // 按設定的時間等待執行 */ /*** sleep後需要用到上面的$id,來執行其他程式,測試後發現$id擷取不到。為空白**/
有知道的大神嗎?或者提供一下其他的思路,謝謝了!
回複內容:
項目中需要用到定時執行,但是定時的時間是一個變數參數,不是固定的
開始考慮使用crontab來實現,但是時間參數沒辦法自訂,還需要獲得一個傳遞的ID來執行sleep後的程式
使用php中的sleep函數碰到一個問題,在sleep之前GET或者POST過來的參數,在sleep之後擷取不到。
ignore_user_abort(); //即使Client斷開(如關掉瀏覽器),PHP指令碼也可以繼續執行. set_time_limit(0); // 執行時間為無限制,php預設執行時間是30秒,可以讓程式無限制的執行下去 $interval=$_GET['interval']; // 接收$_GET參數$id = $_GET['id']; //這裡是請求觸發的時候傳遞過來的ID,在sleep後需要用到flush(); sleep($interval); // 按設定的時間等待執行 */ /*** sleep後需要用到上面的$id,來執行其他程式,測試後發現$id擷取不到。為空白**/
有知道的大神嗎?或者提供一下其他的思路,謝謝了!
把flush注釋掉
測試可以執行
ignore_user_abort(); //即使Client斷開(如關掉瀏覽器),PHP指令碼也可以繼續執行. set_time_limit(0); // 執行時間為無限制,php預設執行時間是30秒,可以讓程式無限制的執行下去 // params$interval=$_GET['interval']; // 接收$_GET參數$id = $_GET['id']; //這裡是請求觸發的時候傳遞過來的ID,在sleep後需要用到flush(); sleep($interval);echo $id;