請(qǐng)問(wèn)下我有如下需求
項(xiàng)目需求是這樣,
管理員通過(guò)在頁(yè)面前端創(chuàng)建課程,當(dāng)課程創(chuàng)建成功之后要給平臺(tái)所有的用戶推送一條微信模板消息,原先我是直接通過(guò) 順序執(zhí)行發(fā)送微信模板消息,但是這種情況下由于nginx服務(wù)器超時(shí)機(jī)制,會(huì)導(dǎo)致很多的人收不到消息,所以必須更改策略,請(qǐng)問(wèn)下使用workman怎么來(lái)實(shí)現(xiàn)給每個(gè)用戶推送微信模板消息(需要與微信服務(wù)器進(jìn)行交互)呢?
你把流程圖畫下吧
管理員發(fā)布課程 ------>ajax提交數(shù)據(jù)
后端處理
1、添加課程數(shù)據(jù)到數(shù)據(jù)庫(kù)
2、查詢?cè)撜n程對(duì)應(yīng)的機(jī)構(gòu)下所有的關(guān)注者列表
3、循環(huán)遍歷關(guān)注著獲取用戶的openid
4、通過(guò)openid調(diào)用封裝好的發(fā)送微信模板方法發(fā)送消息通知(這里是順序進(jìn)行,因?yàn)槌跗跊](méi)有考慮到用戶量以及線程堵塞的問(wèn)題)
后端偽代碼如下
$this->model('course')->add_course($course_data);
$organ_id = $_post['organ_id']; //機(jī)構(gòu)id
$follow_list = $this->model('organ')->get_follow_list($organ_id);
foreach($follow_list as $key => $val){
$this->model('weixin')->send_tpl_msg($val['openid']);
}
管理員發(fā)布課程 ------>ajax提交數(shù)據(jù)
后端處理
1、添加課程數(shù)據(jù)到數(shù)據(jù)庫(kù)
2、查詢?cè)撜n程對(duì)應(yīng)的機(jī)構(gòu)下所有的關(guān)注者列表
3、循環(huán)遍歷關(guān)注著獲取用戶的openid
4、通過(guò)openid調(diào)用封裝好的發(fā)送微信模板方法發(fā)送消息通知b
后端偽代碼如下
$this->model('course')->add_course($course_data);
$organ_id = $_post; //機(jī)構(gòu)id
$follow_list = $this->model('organ')->get_follow_list($organ_id);
foreach($follow_list as $key => $val){
$this->model('weixin')->send_tpl_msg($val);
}
你可以用http://m.wtbis.cn/workerman-jsonrpc,它可以異步并行處理業(yè)務(wù)。
1、Applications/JsonRpc/Services 下新建Weixin.php
<?php
class Weixin
{
public static function sendTplMsg($openid)
{
// 通過(guò)openid調(diào)用封裝好的發(fā)送微信模板方法發(fā)送消息通知
send_tpl_msg($openid)
}
}
2、啟動(dòng)服務(wù)端
調(diào)試方式終端命令行運(yùn)行,此方式運(yùn)行可以調(diào)試服務(wù)端錯(cuò)誤
php start.php start
正式環(huán)境終端命令行運(yùn)行,守護(hù)進(jìn)程方式運(yùn)行
php start.php start -d
3、網(wǎng)頁(yè)調(diào)用的時(shí)候像這樣
include_once 'yourClientDir/RpcClient.php';
// 服務(wù)端列表
$address_array = array('tcp://127.0.0.1:2015');
RpcClient::config($address_array);
$weixin = RpcClient::instance('Weixin');
foreach($follow_list as $key => $val){
$weixin->asend_sendTplMsg($val);
}
4、workerman-jsonrpc只支持Linux系統(tǒng),win系統(tǒng)就不要想了。