swoole多程序處理產生的問題

2022-04-29 13:36:10 字數 455 閱讀 4595

以前用swoole的時候,沒有涉及到資料庫連線,碰到問題沒有那麼多,後來公司業務原生來寫swoole多程序,問題出現很多

1.多程序之間會產生程序隔離,global無效,不能共用乙個mysql,redis連線,所以每個程序單獨開乙個資料庫連線

2mysql資料庫是多執行緒,每乙個執行緒處理乙個連線,當乙個query連線超過mysql的max_timeout時,公司設定為20s,會**,所以在swoole中,由於是乙個長駐記憶體的服務,我們建立了乙個mysql的連線,不主動關閉 或者是用pconnect的方式,那麼這個mysql連線會一直儲存著,然後長時間沒有和資料庫有互動,就主動被mysql server關閉了,之後繼續用這個連線,就報mysql server gone away了

解決方法:

1修改mysql連線時間,但是設定太大的話,資料庫產生大量sleep執行緒

2增加斷線重連的操作

3減少殭屍程序出現

swoole多程序任務

swoole發展很快版本迭代也很快,是彌補了php的缺點,提公升了php的效能,唯一的不足就是文件太差了點,很多想入門的人在官方文件並不能夠順利的進行學習。我也是開始研究swoole的一些知識,下面是總結的swoole多程序的一些知識點。swoole多程序例子1 單程序傳送10封郵件 start t...

Swoole多程序的實現

使用swoole多程序上傳檔案到網宿伺服器 created by phpstorm.user leeo date 2016 9 29 time 15 26 引入檔案上傳類include once filehandleclass.php obj fetch new filehandleclass wo...

Swoole 多程序 簡單示例

一 任務 向使用者先傳送郵箱驗證碼,然後向使用者傳送手機驗證碼。如果是單程序,需要等待郵箱驗證碼傳送完畢才能傳送手機驗證碼,存在一定的耗時。可使用多程序 乙個程序傳送郵箱驗證碼,另乙個程序傳送手機驗證碼。info array email 11111111 qq.com phone 135999999...