大佬們 請教個問題,我用的webman+gateway
現(xiàn)在是涉及到一個更新控制器代碼 gateway的tcp鏈接掉線的問題, 一更新代碼 進程重啟,tcp客戶端硬件就掉線了,然后有時候服務(wù)器或TCP客戶端都顯示鏈接成功,但是無法通訊。
目前是因為我要開著tcp和硬件進行開發(fā),每次一更新代碼以后,都要stop一下 然后等5-10秒再start一下。
如果是debug模式下,就要先停止,然后等5-10秒再start一下。
求救 求救 求救
debug模式還是正常模式都測試過,掉線是偶然現(xiàn)象,但是頻率很高。
我修改的代碼是app/控制器下的代碼 非plugin/Events.php
請問應(yīng)該如何實現(xiàn) 更新app/控制器下的代碼 能實現(xiàn)熱更新,但gateway不重啟進程的方法(或tcp不掉線的方法(注:無法更改硬件,只能從server下手)),感謝各位大佬。
代碼更新,gateway進程不會重啟。
php start.php status
能看到哪些進程有重啟過
大佬 這個是又開了四個進程,還是重啟的進程? 我本地ide修改文件保存的時候,文件上傳,他就提示進程啟動了,這個進程啟動的echo是我寫到eve.php的onWorkerStart里面的
就是我本地ide更新保存的時候,配置了自動上傳到服務(wù)器,然后服務(wù)器那邊就自動update and reload了。然后我這邊的eve.php 就又執(zhí)行了onWorkerStart。導(dǎo)致我的tcp客戶端掉線了。。。
要更新代碼businessWorker必須要重啟的,gateway不會重啟,所以客戶端不會掉線,如果掉線了可能是你event.php里做了什么業(yè)務(wù)邏輯?;蛘遟ateway進程沒設(shè)置 reloadable為false
看下
gateway進程是否設(shè)置了reloadable為false。
要載入新的業(yè)務(wù)代碼,businessWorker必須要重啟,event.php必須要重新載入執(zhí)行
老大感謝,這個地方是默認的false 沒有改過,剛看了一下 是false。但是確實是連接不上了,剛剛我又確認了一下,然后-d還是debug模式下 PID沒有變,然后設(shè)備掉線了,events.php沒有什么業(yè)務(wù)邏輯,只是把客戶端綁定了個uid,然后每次接收到的數(shù)據(jù)都轉(zhuǎn)到控制器進行業(yè)務(wù)處理了。
gateway沒重啟,那就不是gateway導(dǎo)致的。
業(yè)務(wù)有個報錯解決下,應(yīng)該是某個進程執(zhí)行不到Events::onMessage,可能是DiyWorker,把沒用的進程去掉吧。
想下設(shè)備以及服務(wù)端是否有進入某個條件就斷開連接的邏輯。本地沒環(huán)境,其它的幫不上忙了