* 不要在代碼中執行`sleep`以及其他睡眠函數,這樣會導致整個進程阻塞
* `exit/die`是危險的,會導致worker進程退出
* 可通過`register_shutdown_function`來捕獲致命錯誤,在進程異常退出時做一些請求工作,具體參看[/wiki/page/305.html](/wiki/page/305.html)
* PHP代碼中如果有異常拋出,必須在回調函數中進行`try/catch`捕獲異常,否則會導致工作進程退出
* swoole不支持`set_exception_handler`,必須使用`try/catch`方式處理異常
* Worker進程不得共用同一個`Redis`或`MySQL`等網絡服務客戶端,Redis/MySQL創建連接的相關代碼可以放到`onWorkerStart`回調函數中。原因是如果共用1個連接,那么返回的結果無法保證被哪個進程處理。持有連接的進程理論上都可以對這個連接進行讀寫,這樣數據就發生錯亂了。具體參考[/wiki/page/325.html](/wiki/page/325.html)
* 不能使用類的屬性保存客戶端連接信息,因為一個worker進程可以處理多個客戶端連接,導致類屬性數據錯亂。常量則是可以的。