Please enable JavaScript.
Coggle requires JavaScript to display documents.
dbpool server (start() 啟動daemon (serv() (fork() 建立子進程(child)…
dbpool server
start()
啟動daemon
serv()
建立 Socket Server
設定信號處理
pcntl_signal
SIGUSER1(自定信號1)
SIGALRM(鬧鐘信號)
SIGINT(中斷信號 ctrl+c鍵)
SIGCHLD(子進程中斷信號)
fork()
建立子進程(child)
建立父子進程通信連線
子進程及跟父進程通信的資訊存入陣列
建立子進程相關處理信號及 Event 設定
建立自定信號1 Event 設定
(改變子進程處理狀態用)
建立自定信號2 Event 設定
建立 Socket Client 連線 及 Event 設定
建立 Socket Client 連線
Socket Client Event 設定
onRead()
event read callback
onWrite()
event write callback
跟父進程通信 Event 設定
執行無窮迴圈
收集子進程傳送的訊息
收到 'STOP' 訊息
傳送給所有子進程的中斷信號
收到 'LIST' 訊息
傳送自定信號2的信號
輸出所有SQL 訊息給Client 端 :
收到 'KILL xxx' 訊息
傳送給 xxx 子進程的中斷信號
傳送給 xxx 子進程的軟體終止信號
檢查child process idle 的數量
若過多 idle 數量則
減少至最小 child process 的數量