
1 Kinnice Dec 16, 2018 via Android redis |
2 rockyou12 Dec 16, 2018 消息生产者吧未推送的消息放进队列里,用 redis、或者 kafka、rabbitmq 这些都行。发送者订阅队列然后发送,不要用定时任务循环查表表。 |
4 lifespy Dec 16, 2018 分组推送,不要一次全部推送 |
5 lihongjie0209 Dec 16, 2018 这是一个并发定时任务的问题, 把定时任务设置为禁止并发执行就可以, 或者是有一个全局锁保证只有一个定时任务在运行 |
6 opengps Dec 16, 2018 via Android 消息队列,取过的数据在就读取不到了 |
8 CallMeReznov Dec 16, 2018 rabbitmq |
9 loveCoding Dec 16, 2018 存个任务状态标识就行了,用户量不多,不要搞那么复杂. MQ 作为消费者一直会有 listener 监听 topic 消息并消费,不需要干预 |
10 wd Dec 16, 2018 via iPhone 简单处理的话,每条消息加一个标记呗,表示未推送,正在推送,已经推送 |
11 wd Dec 16, 2018 via iPhone 或者就是启动任务的时候,检查下钱一个任务是不是完了。 |
12 wuYin Dec 16, 2018 via Android 以前用 curl_multi 硬核实现过类似推送 [允悲] |
13 myhot21 Dec 16, 2018 via Android 这需求和消息队列完全一样。 |
14 agdhole Dec 16, 2018 量小的话简单的消息队列就行,php 也有很多这方面的轮子 |
15 hcheng Dec 16, 2018 我们用了 flock 这个命令,老哥可以去了解下 |
16 alcarl Dec 16, 2018 via Android 。。。。。。。。定时任务 select 扫出来,扔到推送之前加个推送中的状态和发起推送时间就可以了,再加一个定时任务处理发起推送时间超过 10 分钟状态仍然没变成已推送的,重新改发起推送时间,重新推,还可以加个推送次数,判断推几次就不推了。。。。。。别问我怎么知道的(T _ T) |
19 uoddsa OP |
20 junbaor Dec 17, 2018 如果是全体用户推的话那就不用这么浪费空间给每个用户存一行,我们是单独有一个全局消息表,用户拉自己消息的同时也会拉取全局消息,合并后返回给客户端。全局消息还有类似 tag 一样的东西和用户 tag 进行匹配。 |