登录  /  注册
首页 > php框架 > Swoole > 正文

一文了解swoole多进程消息系统

爱喝马黛茶的安东尼
发布: 2019-11-22 16:50:46
转载
2014人浏览过

一文了解swoole多进程消息系统

场景:适用于大部分消息队列场景,我列举几个常见地方:订单自动取消并归还库存,自动收货,群发邮件,推送微信消息模板,异步邮件发送,会员到期自动取消等等。

一、我们开始看下这个消息端系统的实现流程。

然后把业务逻辑写在Job类,分别两个方法 [ doJob => 自定义业务, after=> 业务后续操作]

1574411050(1).png

二、Serve-Queue 详细讲解流程:

1、安装 git clone https://github.com/twomiao/Serve.git , 然后执行命令:Composer install

2、cd Serve/app/ 打开目录,效果图:

1574411068(1).png

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 命令启动:

1574411088(1).jpg

投递模拟数据, 通过 php test/placeOrder.php 1000

1574411107(1).jpg

swoole 开始多进程处理,订单数据

1574411119(1).jpg

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

新增加文字提醒 “2333, 平滑重启成功”; 哈哈,其实说明已经生效啦!

1574411133(1).jpg

1574411148(1).jpg

守护进程运行:命令执行 php serve start -d

1574411164(1).png

1574411177(1).jpg

投递一笔订单,我们测试看下呢?-1 待支付状态 0 已自动取消

1574411192(1).jpg

提醒:测试文件在 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中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:CSDN网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号