首頁 >php框架 >Swoole >一文了解swoole多進程訊息系統

一文了解swoole多進程訊息系統

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼轉載
2019-11-22 16:50:462441瀏覽

一文了解swoole多進程訊息系統

場景:適用於大部分訊息佇列場景,我列舉幾個常見地方:訂單自動取消並歸還庫存,自動收貨,群發郵件,推送微信訊息模板,非同步郵件發送,會員到期自動取消等等。

一、我們開始看下這個訊息端系統的實作流程。

然後把業務邏輯寫在Job類,分別兩個方法[ doJob => 自訂業務, after=> 業務後續操作]

一文了解swoole多進程訊息系統

二、Serve-Queue 詳細解說流程:

1、安裝git clone https://github.com/twomiao/Serve.git , 然後執行指令:Composer install

2、cd Serve/app/ 開啟目錄,效果圖:

一文了解swoole多進程訊息系統

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 指令啟動:

一文了解swoole多進程訊息系統

#投遞模擬資料, 透過php test/placeOrder.php 1000

一文了解swoole多進程訊息系統

#swoole 開始多進程處理,訂單資料

一文了解swoole多進程訊息系統

php serve reload:平滑重啟Task進程,等同更新(new Job())->doJob( )方法;

新增加文字提醒「2333, 平滑重啟成功」; 哈哈,其實說明已經生效啦!

一文了解swoole多進程訊息系統

一文了解swoole多進程訊息系統

#守護程式執行:指令執行php serve start -d

一文了解swoole多進程訊息系統

一文了解swoole多進程訊息系統

一文了解swoole多進程訊息系統


#投遞一筆訂單,我們測試看下呢? -1 待支付狀態0 已自動取消


提醒:測試檔案在Serve/data/sp_order.sql

四、實作上述過程,需要下面的這些環境安裝

1、安裝Redis 作為佇列, MySQL 資料庫

#2、透過指令pecl install swoole, pecl install seaslog 完成擴充安裝


#php --ini 指令決定php.ini 位置, 把swoole.so 和seaslog.so 加入上去即可


3、透過Mix Delayer 工具(實作延時)


#下載網址:https://github.com/mix-basic/delayer/releases

使用說明: https://github.com/mix-basic/delayer-client-php

4、管理Serve 指令,分別有:php serve start | stop | reload | reload:all

5、Git 倉庫位址:

https://github.com/twomiao/Serve.git  (Redis 延時隊列)#########https://github.com/twomiao/Jober #######PHP中文網,大量的免費###swoole入門教學###,歡迎線上學習! ###

以上是一文了解swoole多進程訊息系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除