使用swoole_http_response方法header,status,end可以實現跳轉
程式碼如下
<code> public function redirect($url) { $this->header("Location", $url); $this->status(302); return $this->end(''); }</code>
但使用redirect()後,程式沒有中斷,還是繼續往下執行,
後來我用拋出異常的方法中斷了程序,不讓他繼續往後執行,不過這樣的方法造成worker重啟,
問題: 有沒有好的辦法,頁面跳轉後,程式就馬上中斷,不會繼續執行,頁面馬上跳轉?要求不使用拋出異常的方法中斷程序
使用swoole_http_response方法header,status,end可以實現跳轉
程式碼如下
<code> public function redirect($url) { $this->header("Location", $url); $this->status(302); return $this->end(''); }</code>
但使用redirect()後,程式沒有中斷,還是繼續往下執行,
後來我用拋出異常的方法中斷了程序,不讓他繼續往後執行,不過這樣的方法造成worker重啟,
問題: 有沒有好的辦法,頁面跳轉後,程式就馬上中斷,不會繼續執行,頁面馬上跳轉?要求不使用拋出異常的方法中斷程序
本來想說 exit(0)的 ,感覺有點不對
沒用過swoole , 剛才看了一下swoole 的文檔 ,
swoole_http_response->end
發送Http回應體,並結束請求處理。
swoole_http_response->end(string $html);
end操作後將向客戶端瀏覽器發送HTML內容,並銷毀$request/$response物件
如果開啟了KeepAlive,連線將會保持,伺服器會等待下次要求
未開啟KeepAlive,伺服器將會切斷連線
end() 之後 $response 物件被銷毀 , http的回應算是完成了 , 業務代碼應該也不會執行了.
http://wiki.swoole.com/wiki/p...
可以理解為reactor就是nginx,worker就是php-fpm。 reactor執行緒非同步並行地處理網路請求,然後再轉送至>worker進程中去處理。 reactor和worker間透過IPC方式通訊。swoole的reactor,worker,task_worker之間可以緊密的結合起來,提供更高級的使用方式。
一個更通俗的比喻,假設Server就是一個工廠,那reactor就是銷售,幫你接項目訂單。而worker就是工人,當銷>售接到訂單後,worker去工作生產出客戶要的東西。而task_worker可以理解為行政人員,可以幫助worker做些雜>事,讓worker專心工作。
woker重啟好像沒什麼影響.