折騰了很久了也經(jīng)歷了很多線上和開發(fā)上遇到的各種坑,下面來說說需要特別注意的地方,歡迎大家留言補(bǔ)充。
問題:很多包并不適用,我就在生產(chǎn)的時候遇到過這樣一個問題
$this->app->setRuntimePath($this->app->getRuntimePath() . $appName . DIRECTORY_SEPARATOR);
看出問題在哪里了嗎? 這是一個中間件模塊。這句代碼會導(dǎo)致你的應(yīng)用內(nèi)存無限增大直到溢出和崩潰。但是生產(chǎn)環(huán)境下,這種影響是不可預(yù)估的。類似的語句我在很多地方都看到過。這并不是一個錯誤。它只是不適合在非傳統(tǒng)模式下運行。
如何避免呢?
對可能發(fā)生的異常,捕獲處理。
特別是使用timer等workerman組件,內(nèi)部最好裹上一層try{}catch{},不然一次異常就有可能導(dǎo)致整個程序崩潰。
.... 后續(xù)補(bǔ)充
希望workerman發(fā)展越來越好。
$this->app->setRuntimePath($this->app->getRuntimePath() . $appName . DIRECTORY_SEPARATOR);
這個沒辦法一眼看出來