1.框架是 tp5.0 和 laravel5.8
现在遇到的业务场景
扫描数据库,然后批量给用户发送微信消息
现在队列的模式是生产者消费者没有解耦的模式 就是 //队列 while(){ //发送消息 }
刚刚测试了下,20 万数据查询用了 5s,但是给微信发送消息比较耗时。
怎么才能把生产者和消费者解耦
下边这种模式不可行 //生产队列 A while(){ //消费队列 B }
1
dswyzx 2021-01-28 11:35:51 +08:00
感觉 mq 就是来解决你这个业务的,消费者消费慢,多开几个罢了
|
2
awanganddong OP 现在 redis 做队列。mq 的话,感觉太重了
|
3
caijihui11 2021-01-28 11:37:45 +08:00
微信发送消息 放 q 里面 多 worker
|
4
heybuddy 2021-01-28 12:00:07 +08:00
场景不复杂的话队列 redis 就够了,微信耗时那里可以考虑用 guzzlehttp 开并发请求的
|
5
awanganddong OP @heybuddy 这个方案比较好
|
6
52coder 2021-01-28 14:27:35 +08:00
kafka?我最近也在梳理一些老功能,打算最一些改动
|
7
awanganddong OP 业务没有到那么重的地步,引进不必要的第三方增加维护难度。
|
8
avenger 2021-02-03 11:45:43 +08:00
Laravel 官方支持的 horizon 可以看一下,可以开多个队列,互不影响
|
9
zhao372716335 2021-03-14 19:51:35 +08:00
MQ
|
10
8355 2021-06-07 17:31:20 +08:00
你这个批量的推 kafka 好一些吧.
|