看workerman的源碼,感覺reload,并不像nginx之類,會重載配置文件,而是對設(shè)置為可重載的子進程,調(diào)用其工作實例的重載回調(diào)方法,然后關(guān)閉它,再創(chuàng)建一個新的同類子進程。
感覺reload命令,目的僅僅為了調(diào)用部分工作實例的onWorkerReload方法?
workerman本身沒有配置文件。所以workerman本身沒有reload重新載入配置文件的說法。
workerman reload 默認是將子進程一個一個重啟。
?
當(dāng)然你可以設(shè)置reloadable=false,然后在onWorkerReload里重新載入業(yè)務(wù)配置,實現(xiàn)不重啟進程載入新的業(yè)務(wù)配置。
有個問題想不明白,static::forkWorkers() 之前 static::resetStd() 不好嗎?最先一批子進程創(chuàng)建時還需要 static::resetStd(),后續(xù)重啟的子進程也沒有 static::resetStd() 啊。另外,積分負了,好多操作受限,怎么漲積分呢?
啟動的時候static::resetStd()盡量后面執(zhí)行可以將啟動時的報錯展示在終端,方便看到報錯。
父進程static::resetStd()后,子進程不需要再static::resetStd()了,會繼承父進程static::resetStd()的結(jié)果。
在社區(qū)只提問,不回復(fù)會扣積分。不要只做尋求幫助者,多幫助社區(qū)里其它人回復(fù)問題可以增加積分。