Swoole-Task:簡單高效的異步任務處理框架

Swoole-Task

github 地址:https://github.com/luxixing/swoole-task
歡迎 star 提 issuesphp

Swoole-Task 用法示例


  • 路由說明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&params=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&params=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,有好的建議我會根據狀況及時改進

Swoole-Task服務管理腳本功能說明


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[進程命令或者進程名稱]

相關文章
相關標籤/搜索