php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送

利用swoole + easywechat实现微信公众号模板消息群发

之前做项目 有一个需求是给关注公众号的人群发模板消息,(⊙o⊙)…思考了一下决定用swoole实现模板消息群发 主要实现是在httpserver的request回调中接受后台要发送的消息内容 之后利用swoole_process模块fork出n个进程 在进程中 for循环开启多个协程 进行操作
环境的话就装个宝塔在装个swoole扩展就行
写的不好的话请多多包涵,指教 谢了~

那么 写好之后长这样儿 里面的db_class 还有waitGroup 没用上 不用管它
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第1张图片
先来一个简单的composer.json 在里面设置了一个src目录
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第2张图片
整一个目录 用来存放一些 配置信息 工具类 巴拉巴拉巴拉~
src中最主要的是App下的Start.php主要作用是返回container容器 容器中已经加载swoole 公众号 配置文件 注入easywechat对象 还有工具类
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第3张图片
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第4张图片
之后就开始写swoole的部分了
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第5张图片
我这里用的的httpserver呢 主要是懒了 http访问起来比较简单 嘎嘎 不需要担心在后台发送数据请求的时候会阻塞 可以用php里面的 fsockopen来发送请求 他是异步的

下面就是在onrequest中接收数据了 这里说一下 数据分发的方法 比如需要发送100条数据 我设置一个进程负责发送20条数据 那么就fork出5个进程 如果需要发送110条数据的话 就会fork出6个进程 array_chunk就是做这个事儿的,之前想过 不传递数组直接传递数组下标 这个怎么是先没有想出来 憋哪儿了 但是即使传递数组的话 我也用了一下 引用传递…没报错 就当他好使了
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第6张图片
比如我需要发送6调数据 一个进程负责发送2条数据 这里面的$new_array则是这个格式的
0=>[‘数据1’,‘数据2’],
1=>[‘数据3’,‘数据4’],
2=>[‘数据5’,‘数据6’]
直接将他发送给fork方法 则fork方法就会 fork出三个进程 分别来取出 这个new_array中的key
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第7张图片
php中白(比小白强一点儿) 利用 swoole+easywechat 实现微信模板消息群发/消息推送_第8张图片
那么 到这里就结束了

你可能感兴趣的:(php,swoole)