場景:適用於大部分訊息佇列場景,我列舉幾個常見地方:訂單自動取消並歸還庫存,自動收貨,群發郵件,推送微信訊息模板,非同步郵件發送,會員到期自動取消等等。
一、我們開始看下這個訊息端系統的實作流程。
然後把業務邏輯寫在Job類,分別兩個方法[ doJob => 自訂業務, after=> 業務後續操作]
二、Serve-Queue 詳細解說流程:
1、安裝git clone https://github.com/twomiao/Serve.git , 然後執行指令:Composer install
2、cd Serve/app/ 開啟目錄,效果圖:
3、目錄介紹: Config、Services、Utils、Job、Func
(1)Config 設定檔案目錄(Redis,MySQL,Serve-Queue)
(2)Services 業務分層( OrderService)
(3)Utils 工具類別(郵件,簡訊等等等),Helper 等同
(4)Job 目錄(Job::doJob() 業務寫在裡面,不要更改Job類別名稱)
(5)Func常用函數( env, db為例)
(6)log 日誌目錄以及TEST目錄(模擬資料檔在裡面)
#三、Serve-Queue 運行流程:
php serve start 指令啟動:
#投遞模擬資料, 透過php test/placeOrder.php 1000
#swoole 開始多進程處理,訂單資料
php serve reload:平滑重啟Task進程,等同更新(new Job())->doJob( )方法;
新增加文字提醒「2333, 平滑重啟成功」; 哈哈,其實說明已經生效啦!
#守護程式執行:指令執行php serve start -d
#投遞一筆訂單,我們測試看下呢? -1 待支付狀態0 已自動取消
提醒:測試檔案在Serve/data/sp_order.sql
四、實作上述過程,需要下面的這些環境安裝
1、安裝Redis 作為佇列, MySQL 資料庫
使用說明: https://github.com/mix-basic/delayer-client-php
4、管理Serve 指令,分別有:php serve start | stop | reload | reload:all
https://github.com/twomiao/Serve.git (Redis 延時隊列)#########https://github.com/twomiao/Jober #######PHP中文網,大量的免費###swoole入門教學###,歡迎線上學習! ###以上是一文了解swoole多進程訊息系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!