有谁会开发微信模板消息推送队列的吗?

2018-03-02 09:20:52 +08:00
 TANKING
有谁会开发微信模板消息推送队列的吗?因为一次性推送到几千个用户,只能用消息队列,如果用 for 循环,遍历的方式,会造成 php 运行超时。
7199 次点击
所在节点    程序员
41 条回复
TANKING
2018-03-02 14:17:17 +08:00
@loveCoding 不太会用这个,看了看文档有点麻烦。
odirus
2018-03-02 14:31:25 +08:00
@jjww

谢谢指教,不过我有不同意见:

经过挖坑、填坑,我其实并不推荐 redis 来实现队列之类的,不确定性太多:
1. 如果我要查询历史消费记录,还是需要存储到其他稳定可靠的介质里面
2. 引入 redis 之后需要考虑维护其稳定性

如果真的是要扩展,我愿意上成熟的方案:例如阿里云的消息队列(当然如果有专门的基础组件研发团队,这又另说)
liuzhedash
2018-03-02 14:52:03 +08:00
lsvih
2018-03-02 15:23:10 +08:00
滥用模版推送会被封的,亲测
bestkayle
2018-03-02 15:50:23 +08:00
@TANKING #20 可以用 PHP 调用命令行啊,网页版的也能用的。
zarte
2018-03-02 16:02:31 +08:00
设置超时时间长点呗
xsdhy
2018-03-02 17:44:35 +08:00
如果是有偿技术支持,可以私聊我。
puritania
2018-03-02 20:18:33 +08:00
最简单的 curl_multi 并发发
des
2018-03-02 20:29:53 +08:00
fpm 有办法在超时断开连接继续跑的办法,只不过没法直接返回结果了

或者尝试 workman 及 swoole ?
wangbenjun5
2018-03-02 20:41:59 +08:00
1.数据量不多用 for 循环也没啥大毛病,cli 下面执行脚本就行,用 php 函数 exec 调用脚本就行!
2.使用消息队列,把所有需要发送的消息扔队列里面,然后消费端多开几个进程跑,相等于多线程!
GreatHumorist
2018-03-02 21:02:58 +08:00
简答复杂都可以,简单点你可以跑个 cli 死循环,一直读 redis,要在网页操作就往 redis 里抛任务就可以。不用 redis 用 mysql 也行啊,写进 mysql。需要注意的一点是两小时已更新 access_token。
fcoolish
2018-03-02 21:31:18 +08:00
没人会用 for 循环吧
TANKING
2018-03-02 23:21:01 +08:00
@GreatHumorist Access_token 不存进数据库。
vacker
2018-03-03 01:32:42 +08:00
说点实际的,我是用的 laravel 队列,运行半年了模板消息没出过问题。
iyaozhen
2018-03-03 01:34:28 +08:00
几千用户怕啥。cli 跑几万用户照样 for 循环
TANKING
2018-03-03 09:04:29 +08:00
@iyaozhen cli 的确没问题,但是做成项目来用不可能天天跑 cli
silencefent
2018-03-03 09:17:36 +08:00
redis 存,redis 取,写自动任务,每分钟执行一次 cli 取出列表,foreach 循环拆散了发信,错误了直接关闭
iyaozhen
2018-03-03 10:12:00 +08:00
@TANKING 楼上也说了 php exec 执行 cli,这样也算异步了
GreatHumorist
2018-03-03 12:27:47 +08:00
GreatHumorist
2018-03-03 12:34:01 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/434121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX