github 地址:https://github.com/luxixing/swoole-task
歡迎 star 提 issuesphp
路由說明git
127.0.0.1:9510/ctrl/action?paramas=xxxgithub
ctrl對應app/ctrl目錄下的xxxCtrl.php文件(xxxCtrl.php中的class名稱也必須是xxxCtrl,繼承base\Ctrl)數據庫
action對應xxxCtrl.php文件中的xxxAction(action 的最後必須返回$this->ret,即最後一句 return $this->ret)json
127.0.0.1:9510?op=ctrl.action¶ms=xxx 等同於 127.0.0.1:9510/ctrl/action?paramas=xxx服務器
啓動swoole-task後發起請求(假定監控的ip和端口是127.0.0.1:9510)swoole
curl "127.0.0.1:9510/ctrl/action?paramas=xxx" 或者 curl "127.0.0.1:9510?op=ctrl.action¶ms=xxx"app
投遞任務到swoole-task進行處理composer
swoole-task目錄結構說明框架
app swoole-task具體處理業務邏輯的地方
app\config 配置文件目錄,根據環境dev,test,prod來加載配置,環境的配置在config/swoole.ini的配置項 env
app\ctrl controller文件所在目錄,處理具體業務邏輯,繼承base\Ctrl這個類
app\dao 數據訪問層,操做數據庫的方法
app\helper 公共方法類
app\vendor 若是依賴composer 第三方庫,在在app目錄下建立composer.json
base 核心框架類,Ctrl Dao Helper App 四個類,命名空間base
config swoole-task 配置文件目錄swoole.ini,配置參數類容參考源碼說明
tmp 臨時目錄,日誌swoole-task中間文件等等在此目錄下存放
swoole-task 自己是一個比較簡單的基於swoole擴展的異步任務處理框架,更詳細使用方法看源碼,或者在github留issues,有好的建議我會根據狀況及時改進
1 若是swoole.php 腳本所在目錄config/swoole.ini 文件不存在,能夠直接刪除config目錄,會自動建立配置文件,建立後的文件根據需求修改
2 注意swoole.ini 的參數dev,這個取值爲dev,test,prod 根據此值讀取swoole/app的配置文件
服務啓動
#啓動服務,不指定綁定端口和ip,則使用config目錄下的swoole.ini配置 php swoole.php start #啓動服務 指定ip 和 port php swoole.php -h127.0.0.1 -p9510 start #啓動服務 守護進程模式 php swoole.php -h127.0.0.1 -p9510 -d start #啓動服務 非守護進程模式 php swoole.php -h127.0.0.1 -p9510 -D start #啓動服務 指定進程名稱(顯示進程名爲 swooleServ-9510-[master|manager|event|task] php swoole.php -h 127.0.0.1 -p 9510 -n 9510 start
服務中止(中止服務最少要指定端口)
php swoole.php -p 9510 stop php swoole.php -h 127.0.0.1 - p 9510 stop
服務重啓(至少指定端口)
php swoole.php -p 9510 restart php swoole.php -h 127.0.0.1 - p 9510 restart
服務狀態(必須指定ip 和 端口)
php swoole.php -h 127.0.0.1 - p 9510 status
swoole-task全部啓動實例進程列表(一臺服務器swoole-task能夠有多個端口綁定的實例)
php swoole.php list
--help
顯示幫助
-d, --daemon
指定此參數,服務以守護進程模式運行,不指定讀取配置文件值
-D, --nondaemon
指定此參數,以非守護進程模式運行,不指定則讀取配置文件值
-h, --host
指定監聽ip,例如 php swoole.php -h 127.0.0.1
-p, --port
指定監聽端口port, 例如 php swoole.php -h 127.0.0.1 -p 9520
-n, --name
指定服務進程名稱,例如 php swoole.php -n test start, 則進程名稱爲SWOOLE_TASK_NAME_PRE-name
start 啓動服務
可指定服務綁定ip 端口 及 是否守護進程模式,還有啓動後進程名稱(進程名稱前綴默認爲swooleServ-, 指定後 swooleServ-name-[master|manager|event|task])
stop 中止服務
必須指定端口參數 -p(--port)
restart 重啓服務
必須指定端口參數 -p(--port) 後續是否須要根據進程名稱重啓根據實際狀況來看(--TODO)
status
查看指定ip和端口的服務狀態,tasking_num是指當前正在運行的任務
list
查看當前服務器上運行的swoole-task實例, 返回結果顯示服務進程的 USER PID RSS(kb)[使用內存] STAT[進程狀態] START[進程運行開始時間] COMMAND[進程命令或者進程名稱]